2011-02-20 9 views
0

ネストされたセットに子オブジェクトが重複しているか、複数のparent_id/root /ノードが存在する可能性がありますか?ネストしたセットに子オブジェクトが重複していたり​​、複数のparent_id/root /ノードが存在することはありますか?

たとえば、部品や機器を管理できるアプリケーションを作成したいと考えています。しかし、特定の装置は他の装置と同じ部品を有することができる。

これに関する最善のアプローチについてのご意見はありますか?

ありがとうございます!

答えて

0

ここで必要なのは、多対多の関係をモデル化するための関連クラスです。そこ(例えば、ツリー型構造を使用して)、これをモデル化する他の方法がありますが、「設定」は、あなたが望むものであるならば、これは方法Iである

class Equipment < ActiveRecord::Base 
    has_many :part_relationships 
    has_many :parts, :through => :part_relationships 
end 

class Part < ActiveRecord::Base 
    has_many :part_relationships 
    has_many :equipment, :through => :part_relationships 
end 

class PartRelationship < ActiveRecord::Base 
    belongs_to :equipment 
    belongs_to :part 
end 

:レールでは、これは次のようになります。やったよ。

e = Equipment.find(:first) 
e.parts # Returns all the parts on this equipment, including shared 

p = Part.find(:first) 
p.equipment # Returns all equipment this part features in. 

# Create a new relationship between e and p 
PartRelationship.create(:equipment => e, :part => p) 
:これが完了すると

、あなたのようなことを行うことができます

関連する問題