2013-03-27 5 views
2

현재 Michael Hartl이 만든 Ruby on Rails 튜토리얼을 작성 중입니다. 내가보기 디렉터리에 포함 된 루비 페이지와 HTML을 작성하여 내 데이터베이스에있는 각 사용자에 대한 페이지를 추가하려고합니다. show.html.erb에 대한 코드는 다음과 같습니다 :NameError in UsersController # show

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

    def new 
    end 
    end 

내가 레일 서버를 실행하면 클릭

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

나는 user_controller.rb 파일에 사용자를 추가, 그것은 다음과 같습니다 사용자/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   
. 
. 
. 
. 

이 오류와 함께 사양 테스트를 통과 할 수 없으므로이 문제를 해결하는 방법을 알려주십시오. 누구든지 제안이나 통찰력이 있다면 크게 감사 할 것입니다. 감사합니다. 당신이 의견 you don't have any User model defined에서 언급 한 바와 같이

+0

글쎄, 당신은'응용 프로그램/모델/user.rb'에 정의 된'클래스 User'을해야합니까? – khustochka

+0

아니요. 사실 model 디렉토리에서 user.rb 파일을 찾을 수 없습니다. 내가 전에 한 개가 있다는 것을 알기 때문에 이것은 이상합니다. – Nyce37

답변

3

컨트롤러 파일 이름은 users_controller.rb

을해야합니다. 모델을 작성하려면 rails g model user name:string email:string을 실행하십시오. 그러면 name and email이라는 User 모델이 생성됩니다.

레일 scaffolding을 시도해보고 어떤 파일 (지금은 controller, model and views 다른 파일을 무시하십시오)을보고 해당 파일의 내용을 확인하십시오. User를 만들기위한 발판을 사용하려면 다음과 같습니다 :

 rails g scaffold user name:string email:string 
    rake db:migrate 
관련 문제