我应该如何在after_create回调中编写多个条件

Ana*_*ose 7 model ruby-on-rails callback

我有一个模型中的方法,在创建后调用

after_create :generate_insurer_recovery_invoice, if: :insurance_recovery_batch?
Run Code Online (Sandbox Code Playgroud)

我应该如何在此回调中编写另一个条件?

Olu*_*tty 12

您也可以使用更短的可读版本

after_save :update_offices_people_count if: -> {office_id_changed? || trashed_changed?}
Run Code Online (Sandbox Code Playgroud)

PS:->是写作的速记版本lambda.


Nar*_*ker 5

我认为这可能对你有用

您可以从以下帖子中实现这样的目标

回调的多个条件

after_save :update_offices_people_count

private

def update_offices_people_count
  if office_id_changed? || trashed_changed?  
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 使用 lambda after_save close_claim_for_unrecoverable 有更好的解决方案,如果: lambda {|di| di.无法恢复?&& di.unrecoverable_changed? } (2认同)