ポンプとパーツの間には多対多の関係があります。パーツ ID をポンプ ドキュメントに保存しています。また、特定のポンプで使用されているパーツの数も保存したいと思います。
要するに、これが私が持っているものです
class Pump
include MongoMapper::Document
key :number, String
key :desc, String
key :part_ids, Array
many :parts, :in => :part_ids
end
class Part
include MongoMapper::Document
attr_accessor :pump_ids
key :qty, Integer
key :number, String
key :desc, String
def pumps
Pump.all(:part_ids => self.id)
end
end
ポンプごとに使用されるパーツの数が異なることに気付くまで、これはうまく機能しました。したがって、関係ごとに数量を保存する必要があり、メモなどの他のリレーショナル固有の情報を保存する必要があります。
IDの配列を保存するだけでなく、代わりにこのようなものが欲しいです。
[{:pump_id => "12hj3hjkbrw", :qty = 4},
{:pump_id => "ggtyh5ehjrw", :qty = 10, :notes => "when using this part with this Pump please note this"}]
これを機能させる方法がわかりません。