0
我有一個消息,並參加軌協會回調關聯後保存
在控制器我建立和保存
conversation = Conversation.new(params)
conversation.participations.build(params)
conversation.messages.build(params)
conversation.save
我Message.rb
有after_create回調Conversation
。
on save
我期望所有的對象被持久化,然後所有的回調被觸發。
我發現的是消息回調在參與持續之前就開始了。
您如何檢查參與是否已被持續 - 不要忘記在整個事務完成之前不會運行commit - 發生在'after_create'回調之後。也許你想使用'after_commit'來代替 - 很難嘗試一種解決方案,因爲你沒有提供任何問題或要求的跡象。 – David
我有一個交易的所有對象的保存。我認爲這裏的教訓是:如果你需要確保對象是持久的,那麼使用'after_commit' –
@David如果你將你的評論移到一個答案,那麼我會標記它是正確的。 –