2014-09-02 37 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