这可能是一个简单的答案,但我迷路了。
我今天创建了我的第一个Polymorphic Association来创建一个活动领域。
这是activity.rb:
class Activity < ActiveRecord::Base
belongs_to :trackable, :polymorphic => true
end
在活动数据库中,我有以下列:
id
name
trackable_id
trackable_type
created_at
updated_at
这是note.rb:
class Note < ActiveRecord::Base
has_many :activities, :as => :trackable
after_create :create_an_activity
def create_an_activity
self.activities.build(:name => candidate_id)
end
end
在我的index.html.erb视图中,我有:
<% @activities.each do |activity| %>
<p>activity.name</p>
<% end >
我的问题是:
目前,视图中的activity.name正在输出id,因为我有:name =&gt; candidate_id。为候选人创建了一个注释。但是,我真正希望它输出的是candidate.full_name(在候选表中)。但是,这不起作用,因为full_name不在notes表中。它在候选人表中。有没有办法访问?候选人有很多笔记和一张笔记属于候选人。
答案 0 :(得分:2)
几个月前与Vin一起享受你的技能分享!
我相信你所寻找的东西可以通过家长协会来访问,通过调用self - &gt;父母 - &gt;属性:
def create_an_activity
self.activities.create(:name => self.candidate.full_name)
end
如果我错了,还要纠正我,但除非你以后再调用一个保存,看起来像self.activities.create就是你要找的而不是.build