Rails 上的 Ruby - Hartl 教程第 7 章 - 无法为 UsersController 找到操作 'index'
Ruby on Rails - Hartl Tutorial Chapter 7 - The action 'index' could not be found for UsersController
我是 Rails 上 Ruby 的新手,所以我在 Rails 教程上关注 Michael Hartl 的 Ruby 并且我 运行一个问题。
在第 7 章第 1 节中,您应该显示用户页面,但我 运行 遇到此错误:
"The action 'index' could not be found for UsersController"
当我试图去 "localhost:3000/users"
我不确定我需要包含哪些所有信息,所以这里有一些,如果我需要更多,请告诉我。我将不胜感激我能得到的任何帮助。我确实在这里查找了类似的问题,但 none 帮助我解决了我的问题。
这是我的 routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
get 'help' => 'static_pages#help'
get 'about' => 'static_pages#about'
get 'contact' => 'static_pages#contact'
get 'signup' => 'users#new'
resources :users
end
users_controller.rb
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
end
end
show.html.erb
<%= @user.name %>, <%= @user.email %>
我已经根据教程仔细检查了我的代码,我似乎找不到任何不同之处。我能想到的唯一问题可能是当它要求我创建 show.html.erb 我只是右键单击并点击 "create file" 在我的在线 IDE (教程推荐的云 9.io ). Hartl 只是说你必须手工创建它,所以我认为这就是他的意思。同样,我们将不胜感激任何帮助。谢谢。
您需要向控制器添加索引操作。
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
end
def index
@users = User.all
end
end
你只需要一个索引位置标记,这是在两个文件中完成的。答案在第9章的书里,这就是你要做的。
首先,在users_controller.rb中添加:
def index
@users = User.all
end
接下来,创建文件 app/views/users/index.html.erb 并添加这个
<% provide(:title, 'All users') %>
<h1>All Users</h1>
本书稍后会完成更多工作,但为了继续进行而不出现任何愚蠢、不必要的错误,这就足够了。
我是 Rails 上 Ruby 的新手,所以我在 Rails 教程上关注 Michael Hartl 的 Ruby 并且我 运行一个问题。
在第 7 章第 1 节中,您应该显示用户页面,但我 运行 遇到此错误:
"The action 'index' could not be found for UsersController"
当我试图去 "localhost:3000/users"
我不确定我需要包含哪些所有信息,所以这里有一些,如果我需要更多,请告诉我。我将不胜感激我能得到的任何帮助。我确实在这里查找了类似的问题,但 none 帮助我解决了我的问题。
这是我的 routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
get 'help' => 'static_pages#help'
get 'about' => 'static_pages#about'
get 'contact' => 'static_pages#contact'
get 'signup' => 'users#new'
resources :users
end
users_controller.rb
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
end
end
show.html.erb
<%= @user.name %>, <%= @user.email %>
我已经根据教程仔细检查了我的代码,我似乎找不到任何不同之处。我能想到的唯一问题可能是当它要求我创建 show.html.erb 我只是右键单击并点击 "create file" 在我的在线 IDE (教程推荐的云 9.io ). Hartl 只是说你必须手工创建它,所以我认为这就是他的意思。同样,我们将不胜感激任何帮助。谢谢。
您需要向控制器添加索引操作。
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
end
def index
@users = User.all
end
end
你只需要一个索引位置标记,这是在两个文件中完成的。答案在第9章的书里,这就是你要做的。
首先,在users_controller.rb中添加:
def index
@users = User.all
end
接下来,创建文件 app/views/users/index.html.erb 并添加这个
<% provide(:title, 'All users') %>
<h1>All Users</h1>
本书稍后会完成更多工作,但为了继续进行而不出现任何愚蠢、不必要的错误,这就足够了。