Rails中的母亲/父亲/子女关系

时间:2012-03-07 19:17:55

标签: ruby-on-rails-3 activerecord

我很确定这是一个非常基本的问题。无论如何,我找不到合适的信息。

我有3个模特。

用户 - 任务 - 备注

用户和任务处于同一级别,因为任务是Projects模型的子级,并且它们用作模板。 然后,对于每个用户,我显示项目的所有任务并添加注释。 在这种情况下的注释是两个用户和任务的子项,实际上它们是两者组合的子项。

解决此问题的最佳方法是什么?我检查了多态关联,似乎在这种情况下它不起作用。

干杯, 的Davide

1 个答案:

答案 0 :(得分:0)

根据我对您的问题的理解,多态关联正是您想要的,因为用户拥有许多Notes,而且任务有很多Notes。

关系看起来像这样

user.rb和task.rb

中的

has_many :notes, :as => :noteable

在note.rb

belongs_to :noteable, :polymorphic => true

在您的创建笔记迁移中

t.references :noteable, :polymorphic => true

请注意,用户和任务都可以包含Notes,Notes可以属于用户或任务(或使用可记录多态接口连接的任何其他内容)。