使用外键数组的ActiveRecord关系

时间:2010-10-24 08:54:51

标签: ruby-on-rails activerecord entity-relationship foreign-key-relationship

是否可以在分支之间建立关系,例如:

class Tree < ActiveRecord::Base
  has_many :branches
end

class Branch < ActiveRecord::Base
  belongs_to :tree
end

但是在Tree中存储了一组外键 branch_ids ?我知道它与默认过程相反,但我想这样做(仅用于测试)。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

正如Lichtamberg所提到的,它是一个糟糕的架构。既然你说“只是为了测试”, 如果branch id将是一个逗号分隔值的列。你将无法建立关系。但是你可以像这样创建一个属性

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

但不要这样做!!!

答案 1 :(得分:0)

你必须指定一个新模型(f.e.branchree) - hbtm或其他has_many:通过

然后你可以为一个分支拥有多棵树......