私はこれについていくつかの助けを本当にいただければ幸いです。
私は次のような関係を持っています:
class User < ActiveRecord::Base
has_many :ideas, :class_name => 'Challenge', :foreign_key => 'creator_id'
has_many :contributions, :class_name => 'Challenge', :foreign_key => 'contributor_id'
class Challenge < ActiveRecord::Base
belongs_to :creator, :class_name => 'User'
belongs_to :contributor, :class_name => 'User'
私の問題は、チャレンジモデルのビューにユーザーのIDではなく名前を表示できることです。
コンソールで、@challengeにチャレンジを割り当ててから入力できます
@challenge.creator.name
作成者の名前を返します、完璧です。しかし、これをビューに入れようとすると、未定義のメソッド'name'が返されます。
私が行った正しいことの最も近いものは、私のチャレンジの関連部分を、creator_idではなくcreatorと言うインデックスビューにすることだと思います。
<tr><% @challenges.each do |challenge| %><tr>
<td><%= challenge.creator %></td>
しかし、私が望むビューで作成者名を返す代わりに、次の出力を返します。
#<User:0x007fe1b81c20b8>
フィールドがこのように表示される理由と、ビューにユーザーの名前を出力する方法を教えてください。
MyChallengesコントローラーのインデックスアクションは次のとおりです。
@challenges = Challenge.all