如何为该方法指定多个回调?
after_commit :assign_awards, on: [:create, :destroy]
private
def assign_awards
AwardsWorker.perform_async(self.id, self.class.name, self.user_id)
end
错误:
/activesupport-3.2.13/lib/active_support/callbacks.rb:404: syntax error, unexpected '[', expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
...(transaction_include_action?(:[:create, :destroy]))
出于某种原因,回调也不会用这个执行:
after_commit :assign_awards, on: :create
after_commit :assign_awards, on: :destroy
仅当我使用两种不同的方法时才有效,例如:
after_commit :assign_awards_create, on: :create
after_commit :assign_awards_destroy, on: :destroy
private
def assign_awards_create
AwardsWorker.perform_async(self.id, self.class.name, self.user_id)
end
def assign_awards_destroy
AwardsWorker.perform_async(self.id, self.class.name, self.user_id)
end