Каков наилучший способ установить несколько отношений «многие ко многим» в рельсах? - PullRequest
2 голосов
/ 15 февраля 2011

Я довольно новичок в 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 Ответ

4 голосов
/ 15 февраля 2011

Вы можете иметь несколько 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
...