【发布时间】:2014-10-21 15:13:54
【问题描述】:
我正在使用 Rails 3.2.19,在回调中使用多个 if 作为条件时遇到问题。
以下混合双重条件有效(评估 first_condtion 和 second_condition)
after_save :after_save_method, unless: :first_condition?, if: :second_condition?
但如果我使用两个if 条件,则每次都会执行 after_save_method。 (好像只取最后一个条件)
after_save :after_save_method, if: :first_condition?, if: :second_condition?
我还尝试将这两个条件与 '&&' 结合起来,但没有奏效。
after_save :after_save_method, if: :first_condition? && :second_condition?
为什么我不能多次使用if?
apidoc 在http://edgeguides.rubyonrails.org/active_record_callbacks.html#multiple-conditions-for-callbacks 有一个带有除非和 if 的示例,但没有说明不允许两个“ifs”。
对此我的解决方案是将所有必要的代码提取到一个方法中,并且只评估该方法,但我只想确定 if 的东西。
【问题讨论】:
标签: ruby-on-rails if-statement callback conditional