我有一個使用activerecord生命週期回調的模型。我正在使用after_commit回調來執行需要主鍵在創建時運行的sidekiq作業。after_commit block當參數使用hashrocket語法時執行,但當它使用冒號語法時不執行
after_commit on: :create do
async_process
end
塊內部的代碼永遠不會運行。
然而,當我做
after_commit :on => :create do
async_process
end
的代碼運行正常。
據我所知,這兩條不同的線條應該用完全相同的方式解釋。我錯過了什麼?
我使用的是ruby 2.0.0p247,Rails 3.2.17。
您確定您使用'on::create'而不是'on:create'嗎? –
看起來應該運行良好。另外,你不需要do塊。你可以寫下after_commit:async_process,on::創建 – emcanes
@ muistooshort是的,但很好的猜測。 emcanes與冒號語法一起工作,沒有do塊,並且帶有do塊的hashrocket語法。 – dfried