我可能会完全感到困惑,而且目标不合适。
我有一个事件模型,其中包含了属于事件的时间轴。时间轴has_many属于时间轴的TimelineItems。
def Event
has_one :timeline
end
def Timeline
belongs_to :event
has_many :timeline_items
end
def TimelineItem
belongs_to :timeline
end
create_table :admin_timeline_items do |t|
t.references :admin_timeline
t.references :user
t.references :resource, :polymorphic => true
t.string :method
end
因此,通过TimelineItem对象,我将能够生成例如此输出:
eml在[日期]
创建了帖子“嗨,这是来自eml”
标题“嗨,这是来自eml”将来自Post对象的.title。所以,例如。此TimelineItem具有这些设置
item.user = User.where(:username => "eml")
item.resource_type = "Post"
item.resource_id = 1
item.created_at = 27/082...13:37
所以问题是获取所述Post对象,或者更确切地说是这个特定关联的正确语法。对我来说似乎非常简单,但我找不到正确编写它所需的信息。
感谢您的帮助&时间。
答案 0 :(得分:0)
抱歉......我只是在困惑自己因为我在自己的测试项目中将resource_id设置为错误的值。我的第一个猜测是正确的。这很简单:
class TimelineItem < ActiveRecord::Base
belongs_to :timeline
belongs_to :user
belongs_to :resource, :polymorphic => true
end
像这样访问资源:
TimelineItem.first.resource
=> Post(....)