Проблема найти объединенную таблицу в рельсах - PullRequest
0 голосов
/ 15 ноября 2009

У меня есть модель, представляющая правило ассоциации (Body => Head)

def Item
has_many :heads
has_many :bodies
...
end

def Rule
has_many :heads
has_many :bodies
...
end

def Body
belongs_to :item
belongs_to :rule
...
end

def Head
belongs_to :item
belongs_to :rule
...
end

Я хочу найти правило, в котором указаны элементы тела, соответствующие элементам, и хочу получить доступ к его голове через правило, но я не могу сделать как

def Rule
has_many :heads
has_many :bodies
has_many :item, :through => :heads
has_many :item, :through => :bodies
...
end

Что я должен изменить и сделать для этого?

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 ноября 2009

Наконец-то я придумала это решение

class Rule
  has_many :heads
  has_many :bodies
  ...
end
class Body
  belongs_to :rule
  has_many :items, :as => :rulable
end
class Head
  belongs_to :rule
  has_many :items, :as => :rulable
end
class Item
  belongs_to :rulable, :polymorphic => true`
end

Не уверен, что это хорошее решение, но это то, чем я сейчас пользуюсь.

0 голосов
/ 16 ноября 2009
def Rule
  has_many :heads
  has_many :bodies
  has_many :head_items, :through => :heads
  has_many :body_items, :through => :bodies
  ...
end

Для каждого вам нужны различные ассоциации has_many.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...