2015-05-09 86 views
0

我跟着Michael Hartl的Rails教程。我們剛剛創建了一個用戶數據庫(的「demo_app」第一部分),但是當我啓動服務器,並導航到新的用戶頁面出現以下錯誤:用戶的Rails教程NoMethodError#index

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.這不是一個語法錯誤。我非常瞭解這一點。

回答

2

你沒有忘記一個end

def index 
    @users = User.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @users } 
    end 
end 
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 
+0

我沒有。我只是沒有在摘要中加入它(在'index'下面還有其他方法,爲簡潔起見,我排除了它們) –

+0

@MikeB確定嗎?編輯完成後,問題仍然包含語法錯誤。 :) – pmichna

0

我試圖比較你的代碼和我的,但我不知道你在哪裏。在第2章中,我們構建了一個演示應用程序,但在我的Users.controller中沒有「respond_to ...」塊。 在這種情況下,您應該儘可能地關閉def索引,但我不確定您的respond_to塊應該放在哪裏。 在第4章中,如果有一個respond_to塊,我的Users.controller中沒有索引方法

那麼,你能告訴你正在使用哪一章嗎?也許發佈完整的Users.controller文件?

0

您的config/routes.rb文件是否包含一行聲明您的urls/users/*應該派發到您的UsersController?

如果該行不存在,你應該添加在config/routes.rb

resources :users 
相關問題