在rails中设置多个多对多关系的最佳方法是什么?

时间:2011-02-15 03:45:36

标签: ruby-on-rails many-to-many associations

我对RoR很新 - 所以请保持温柔:)

我正在尝试设置一个有两对多关系的环境。

我在想的是:

class A
  has_many :c
  has_many :d
  has_many :b, :through=>c
  has_many :b, :through=>d
end

class B
  has_many :c
  has_many :d
  has_many :a, :through=>c
  has_many :a, :through=>d
end

class C
  belongs_top :a
  belongs_to :b
end

class D
  belongs_top :a
  belongs_to :b
end

从这一切开始,我读过多个:通过与一个类中的一个属性的关联不起作用。这个设置的全部目的是让我可以轻松地参考c和d来调用数据 - 即@ a.c和@ a.d,以及@ b.c和@ b.d。

有什么想法吗?

提前致谢。

达莫

1 个答案:

答案 0 :(得分:4)

你可以有多个has_many:通过关联,但你只需要给它们不同的名字:

class A
  has_many :c
  has_many :d
  has_many :cb, :through=>c, :class_name => "B"
  has_many :db, :through=>d, :class_name => "B
end