2

私は現在、Michael Hartl による Ruby on Rails チュートリアルに取り組んでいます。ビューディレクトリにルビーページが埋め込まれたHTMLを作成して、データベースに各ユーザーのページを追加しようとしています。show.html.erb のコードは次のとおりです。

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

ユーザーを user_controller.rb ファイルに追加すると、次のようになります。

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

    def new
    end
  end

Rails サーバーを実行し、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         
.
.
.
.

このエラーで仕様テストに合格できないため、これについてどうすればよいか教えてください。誰かに提案や洞察があれば、私は大いに感謝します.ありがとう.

4

1 に答える 1

3

コントローラーのファイル名はusers_controller.rb

あなたがコメントで述べたようにyou don't have any User model defined。モデルの実行を作成しますrails g model user name:string email:string。これによりUser、属性を持つモデルが作成されますname and email

Railsscaffoldingを試して、作成されるファイルを確認し (controller, model and views今のところ他のファイルは無視します)、それらのファイルの内容を確認します。作成に scaffold を使用するにUserは、次のようにします。

     rails g scaffold user name:string email:string
     rake db:migrate 
于 2013-03-27T16:08:17.430 に答える