1. ホーム
  2. ruby-on-rails

[解決済み] 未定義メソッド各レールエラー

2022-02-28 15:04:23

質問

にあるチュートリアルでruby on railsを試していました。 http://ruby.railstutorial.org . ユーザーを作成し、名前とグラビアを表示させるところまではできたのですが。

http://localhost:3000/users/1

今度は、ユーザーがアクセスしたときに、すべてのユーザーを表示するようにしたい。

http://localhost:3000/users/

以下は私のコントローラです。

class UsersController < ApplicationController

  def index
    @user = User.all
  end      

  #...
end

以下は私の見解です。

#View for index action in user's controleer

<h1>All users</h1>

<ul class="users">
  <% @users.each do |user| %>
    <li><%= user.content %></li>
  <% end %>
</ul>

以下のようなエラーが発生します。

undefined method `each' for nil:NilClass

なぜインデックスページが思い通りに動かないのか、どなたか教えてください。

どうすればいいですか?

この問題は @users という変数が存在しない。

インデックスアクションで @user を全ユーザーに適用します。

def index
  @user = User.all
end

DBから複数のエントリを取得する場合、慣習的に名前を複数化して使用します。 @users (s'に注目) をビューで使用します。単に @user から @users で大丈夫です ;)

def index
  @users = User.all
end