【发布时间】:2010-10-15 20:26:11
【问题描述】:
我有一个模型,它表示由组件组成的组件,组件(就其本身而言)也可能是组件。看起来有点像这样:
class Component < ActiveRecord::Base
belongs_to :assembly, :class_name => "Component", :foreign_key => :assembly_id
has_many :pieces, :class_name => "Component", :foreign_key => :assembly_id
end
我想确定,当我将一个组件添加到程序集时,添加的不是程序集本身,也不是链上的另一个程序集。实际上,无论您向下多少层,程序集都不能包含自己。
我的想法是在保存组件时遍历向上的树以查找组件本身作为父级、祖父级等。我试图避免循环引用。
有没有一种“简单的 Rails-ish”方式来做到这一点?还有其他建议吗?
【问题讨论】:
标签: ruby-on-rails recursion circular-reference