4

ruby.railstutorial.orgでmhartlのチュートリアルに従っていますが、users_controllerのインデックス関数に問題があります。コンソールで、次のコードを入力できます。

@users = User.all

SQLデータベースに適切にアクセスし、すべてのユーザーのリストを表示します。ただし、ページを読み込もうとすると、インデックスファイル内のリストの使用方法に応じてさまざまなエラーが発生しますが、リストがすべてnilであることが関係しています。たとえば、インデックスページにこれが含まれている場合:

<% @users.each do |user| %>
    <li>
        <%= link_to user.name, user %>
    </li>
<% end %>

サーバーが吐き出します:

undefined method `each' for nil:NilClass

のようなものrender @usersは私にエラーを与えます'nil' is not an ActiveModel-compatible object that returns a valid partial path.

コンソールで機能する場合、なぜこのエラーが発生するのか、私は本当に混乱しています。私からの他のコードが必要な場合はお知らせください。

ご協力いただきありがとうございます!

4

1 に答える 1

7

このすべてのエラーメッセージは、@userがビューでnilであることを示しています。ビューがviews/users / index.html.erbであると仮定して、このようにusers_controllerインデックスアクションで@usersを初期化しましたか?

def index
  @users = User.all
end
于 2012-07-28T14:23:12.113 に答える