2013-11-08 5 views
0

Использование Rails 3.2 с Mongoid 3.1.5. Недавно я только что изменил событие принадлежать_объекту: место в полиморфной ассоциации: местоположение. После этого при сохранении события, охваченного Организацией, он больше не связывает событие с местом встречи.Rails полиморфная ассоциация с мангидом

#Models 
class Event 
    include Mongoid::Document 
    has_and_belongs_to_many :organizations, index: true 
    belongs_to :location, polymorphic: true, index: true 
end 

class Organization 
    include Mongoid::Document 
    has_and_belongs_to_many :events, index: true 
end 

class Venue 
    include Mongoid::Document 
    has_many :events, as: :location, autosave: true 
end 

#Code 

org = Organization.first 
ven = Venue.first 
evt = org.events.create(location: ven) 
org.events.count #=> 1 
evt.location #=> #<Venue... 

# How can I make this include the evt? 
ven.events.count #=> 0 

Исходя из этого, я мог бы просто сделать ven.events << evt, но это потребовало бы мне делать это каждый раз. Какие-нибудь другие идеи?

ответ

0

Не существует «соединения» на Mongodb, так что невозможно заинтересовать ваши отношения. Вы можете денормализовать свои данные и вставить документ-копию из места проведения внутри мероприятия.

+0

Да, я надеялся избежать этого, но это подтверждает его для меня. Благодаря! – jeremywoertink

Смежные вопросы