2014-09-02 32 views
0

我有下面的代码:Mongoid:has_and_belongs_to_many幽会不会触发after_save的

def Person 
    has_and_belongs_to_many :houses 

    def after_save do 
    p "After save" 
    end 
end 

def House 
    has_and_belongs_to_many :persons 
end 

p = Person.create 
h = House.create 
p.house_ids 
=> nil 

p.houses << h # it should print 'After save' 
p.house_ids 
=> ["540591aad9a0d13cee00003e"] 

它应打印“保存后”,但它不会触发回调,为什么不呢?

回答

0

因为after_save不会被触发创建对象时,...利用after_create回调,它会正确打印

+0

我是指,当我给你的房子不是我创造它。 – drinor 2014-09-03 18:23:35

+0

如果您在p.house_ids后面添加'p.save!'或'p.save',它会在保存后打印“ – 2014-09-04 03:43:14