【发布时间】:2012-10-21 10:26:49
【问题描述】:
我真的很感激这方面的一些帮助。
我有如下关系:
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
返回创建者的名字,完美。但是当我尝试将它放在我的视图中时,它会返回未定义的方法“名称”。
我认为我所做的最接近正确的事情是让我的挑战索引视图的相关部分说 creator,而不是 creator_id:
<tr><% @challenges.each do |challenge| %><tr>
<td><%= challenge.creator %></td>
但不是在视图中返回我想要的创建者名称,而是返回以下输出:
#<User:0x007fe1b81c20b8>
谁能解释一下为什么这样显示一个字段以及如何在我的视图中输出用户名。
我的挑战控制器索引操作只是:
@challenges = Challenge.all
【问题讨论】:
-
只是指出。 “它返回以下输出:”之后没有输出。
标签: ruby-on-rails view associations