Railsフレームワークを初めて使用し、この問題を修正するために非常に長い時間を費やしました...特定のユーザーが属するチーム名を表示したいのですが、これは表示アクション(ユーザーの詳細)では機能しますが、インデックスアクション(すべてユーザー)
私はテーブルを作成しました:
teams users
----------- ---------------
id (integer) id(integer)
name (string) fname(string)
lname(string)
team_id(integer)
私は次のクラスを持っています:
class Team < ActiveRecord::Base class User < ActiveRecord::Base
attr_accessible :name, :user_id attr_accessible :fname, :lname, :team_id
has_many :users belongs_to :team
次に、次のユーザーコントローラーがあります。
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def index
@users = User.paginate(page: params[:page], per_page: 15)
end
..そしてユーザーのチーム名を表示するコードは
Team: <%= @user.team[:name] %>
...これは完全に正常に機能します...ただし、このようにインデックスビューで同じコードを使用しようとすると、「undefined method `team'for nil:NilClass」というエラーが発生します。
<table class="table table-striped">
<% @users.each do |user| %>
<tr>
<td>
<%= "#{user.fname} #{user.lname}" %>
</td>
<td>
Team: <%= @user.team[:name] %>
</td>
</tr>
<% end %>
</table>
私は何を間違えましたか?よろしくお願いします!