- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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 有一个例子,除非和 if 在 http://edgeguides.rubyonrails.org/active_record_callbacks.html#multiple-conditions-for-callbacks ,但没有说不允许两个“如果”。
我的解决方案是将所有必要的代码放入一个方法中,并且只评估该方法,但我只想确定 if
东西。
最佳答案
我建议您创建一个知道您想要的逻辑的私有(private)方法:
after_save :after_save_method, if: :first_condition_and_second_condition?
private
def first_condition_and_second_condition?
first_condition? && second_condition?
end
关于ruby-on-rails - Rails 回调 : Use if more than once as conditional in a callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25537260/
我是一名优秀的程序员,十分优秀!