Отношение ActiveRecord с использованием массива внешних ключей - PullRequest
1 голос
/ 24 октября 2010

Возможно ли установить связь между Дерево и Ветвь , например:

class Tree < ActiveRecord::Base
  has_many :branches
end

class Branch < ActiveRecord::Base
  belongs_to :tree
end

Но с массивом внешних ключей branch_ids , хранящимся в дереве? Я знаю, что это противоположно процессу по умолчанию, но я хочу сделать это (только для тестирования).

Большое спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 24 октября 2010

Как сказал Лихтамберг , это плохая схема. Так как вы сказали "только для тестирования", если идентификаторы ветвления будут столбцом со значениями, разделенными запятыми. Вы не сможете установить отношения. Но вы можете создать атрибут как этот

class Tree < ActiveRecord::Base
  def branches
      Branch.all(branch_ids.split(','))
  end
  def branches=(branches)
      branch_ids = branches.collect(&:id).join(',')
  end
end

Но не делай этого !!!

0 голосов
/ 24 октября 2010

Вы должны указать новую модель (например, ветвистое дерево) - hbtm или другое has_many: через

Тогда вы можете иметь несколько деревьев для одной ветви ...

...