我正在跟随Michael Hartl的Rails教程。我们刚刚创建了一个Users数据库(这是“demo_app”的第一部分),但是当我启动服务器并导航到新用户页面时,我收到以下错误:
NoMethodError in Users#index
和应用程序跟踪:
app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__2922823401409246272_70101530338460'
app/controllers/users_controller.rb:7:in `index'
我真的不知道如何破译这些错误消息,但这是我的users_controller文件:
class UsersController < ApplicationController
# GET /users
# GET /users.json
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @users }
end
end
....
....
第7行是respond_to do |format|
行。有什么想法吗?完成Ruby和Rails的新手(想想我会动态学习Ruby)。
P.S。这不是语法错误。我知道的很多。
答案 0 :(得分:2)
你忘了一个end
吗?
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @users }
end
end
答案 1 :(得分:2)
我相信你的问题在于没有关闭respond_to do |format|
块。应该是:
def index
@users = User.all
respond_to do |format|
format.html #index.html.erb
format.json { render json: @users }
end
end
答案 2 :(得分:0)
我试图将您的代码与我的代码进行比较,但我不确定您的代码在哪里。在第2章中,我们构建了一个演示应用程序,但是在我的Users.controller中没有“response_to ...”块。 在这种情况下,您可能应该使用end关闭def索引,但我不确定在这种情况下您的respond_to块应该在哪里。 在第4章中,有一个respond_to块,我的Users.controller中没有索引方法
那么,你能说出你在哪个章节工作吗?也许发布完整的Users.controller文件?
答案 3 :(得分:0)
您的config/routes.rb
文件是否包含一行声明您的urls / users / *应该发送给您的UsersController?
如果该行不存在,则应添加config/routes.rb
resources :users