我有一个Event
模型,我正在寻找添加可附加模型的列表。这需要包含某种多态性,因为可附加列表可以是Contact
User
Post
Import
和其他几个中的任何一个。
我不完全确定如何才能最好地实现这一目标。单个联系人也可以附加到许多活动中。请采取以下措施,例如:
event.attachables #=> [User, Contact, Contact, Import, ...]
user = event.attachables.first
user.attached_events #=> [Event, Event, Event, ...]
为了最好地实现这一点,正确方向上的任何一点?
答案 0 :(得分:1)
我昨天也找了同样的事情。
我找到了一篇博文,详细描述了所有内容并帮助我实现了这一点。
http://www.unixgods.org/~tilo/Rails/Rails_polymprphic_has_many_through_relationships.html
这里的关键是在source
模型的has_many
声明中定义属性event
,在as
has_many
声明中定义Contact
{1}},User
和Post
您只需要为source
找到一个正确的描述性名称:)
答案 1 :(得分:-1)
我真的建议您阅读此Rails指南:http://guides.rubyonrails.org/association_basics.html#polymorphic-associations。它涵盖了你所追求的目标。