涉及多个表的关联

时间:2009-11-04 02:37:59

标签: ruby-on-rails

我的数据结构类似于下图。

表A has_many表C至表B;和

表C has_many表E至表D

为了使表A与表E有关联,以便我可以object_a.has_many_object_e,并且必须满足以下限制:

  1. 不允许向任何表添加外键
  2. 关系需要是双向的
  3. 我该怎么做才能实现这个目标?

    谢谢!

    alt text http://img25.imageshack.us/img25/763/railsassociation.gif

1 个答案:

答案 0 :(得分:1)

您可以使用nested_has_many_through插件执行以下操作:

class ModelA
  has_many :model_bs
  has_many :model_cs, :through => :modelbs
  has_many :model_es, :through => :modelcs
end

class ModelB
  belongs_to :model_as
  belongs_to :model_cs
end

class ModelC
  has_many :model_bs
  has_many :model_ds
  has_many :model_as, :through => :modelbs
  has_many :model_es, :through => :modelcs
end