У меня есть много-много отношений между насосами и запчастями. Я храню идентификаторы деталей в документе Pump. Я также хотел бы сохранить количество деталей, используемых в конкретном насосе.
Вот что у меня есть, короче
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
Это работало нормально, пока я не понял, что количество используемых деталей на Насос отличается, так что теперь мне нужно сохранить количество для отношения и, возможно, некоторую другую специфическую информацию, такую как примечания.
Вместо того, чтобы просто хранить и хранить массив идентификаторов, я бы хотел что-то вроде этого.
[{:pump_id => "12hj3hjkbrw", :qty = 4},
{:pump_id => "ggtyh5ehjrw", :qty = 10, :notes => "when using this part with this Pump please note this"}]
Я не уверен, как заставить это работать.