2013-03-27 26 views
2

我目前正在使用Michael Hartl的Ruby on Rails教程。我試圖通過在views目錄中創建一個嵌入了ruby頁面的HTML來爲我的數據庫中的每個用戶添加一個頁面。對於show.html.erb的代碼如下:UsersController中的NameError#show

<%= @user.name %>, <%= @user.email %> 

當我將用戶添加到user_controller.rb文件,它看起來像這樣:

class UsersController < ApplicationController 
    def show 
     @user = User.find(params[:id]) 
    end 

    def new 
    end 
    end 

當我運行軌道服務器並點擊在打開users/1 URL時,我得到一個NameError抱怨未初始化的常量。誤差和跟蹤如下:

NameError in UsersController#show 
uninitialized constant UsersController::User 

Rails.root: /usr/sample_app 
Application Trace | Framework Trace | Full Trace 

app/controllers/users_controller.rb:3:in `show' 
actionpack (3.2.12) lib/action_controller/metal/implicit_render.rb:4:in `send_action' 
actionpack (3.2.12) lib/abstract_controller/base.rb:167:in `process_action' 
actionpack (3.2.12) lib/action_controller/metal/rendering.rb:10:in `process_action' 
actionpack (3.2.12) lib/abstract_controller/callbacks.rb:18:in `block in process_action' 
activesupport (3.2.12) lib/active_support/callbacks.rb:414:in   
. 
. 
. 
. 

請讓我知道如何去了解這一點,因爲我無法通過我的規格測試,此錯誤。如果有人有任何建議或見解,我將不勝感激他們。謝謝。

+0

那麼,你有'應用程序/模型/ user.rb'定義'類User'? – khustochka 2013-03-27 15:23:45

+0

不,我不知道。實際上,我無法在models目錄中找到我的user.rb文件。這很奇怪,因爲我知道我之前有一個 – Nyce37 2013-03-27 15:25:47

回答

3

控制器文件名應該是users_controller.rb

正如你在評論you don't have any User model defined提及。創建模型運行rails g model user name:string email:string。這將創建User模型,其屬性爲name and email

嘗試導軌scaffolding並查看它創建了哪些文件(目前在controller, model and views中忽略其他文件)並查看這些文件的內容。要創建User使用的支架是如下:

 rails g scaffold user name:string email:string 
    rake db:migrate 
相關問題