Я закончил тем, что создал свою собственную функцию link (), основанную на ответе @rubish.
Добавьте это в initializers / mongoid.rb:
module Mongoid
module Document
def link(entity)
add_to_set((entity.class.name.demodulize.downcase!.to_s + '_ids').to_sym, entity.id)
save!() unless persisted?
entity.add_to_set((self.class.name.demodulize.downcase!.to_s + '_ids').to_sym, id)
end
end
end
А затем просто свяжите () ваши много-много-много связанных сущностей, например:
my_new_favorite = Favorite.find_or_initialize_by(:field => 'value')
user.link(my_new_favorite)
Улучшения приветствуются, я начал использовать ruby в прошлом месяце.