1

私は、activerecord ライフサイクル コールバックをかなり頻繁に使用しているモデルを持っています。after_commit コールバックを使用して、作成時に主キーを必要とする sidekiq ジョブを実行しています。

after_commit on: :create do
  async_process
end

ブロック内のコードは実行されません。

しかし、私がするとき

after_commit :on => :create do
  async_process
end

コードは正常に実行されます。

私が理解しているように、これら 2 つの異なる行はまったく同じように解釈されるべきです。私は何が欠けていますか?

Ruby 2.0.0p247、Rails 3.2.17 を使用しています。

4

2 に答える 2

0

同じバージョンRubyRailsバージョンを使用して動作します。または、受け入れられている別の構文を試すこともできます。

after_commit :async_process, on: :create
于 2014-03-24T20:09:51.233 に答える