Was*_*per 2 ruby activerecord ruby-on-rails ruby-on-rails-3
有人可以指出我正确的方向.
我正在使用after_validation来竞争地理编码,我想知道如何在一个或者||上进行操作 if子句的选项.
这按预期工作
class Address < ActiveRecord::Base
after_validation :geocode, if: :address_changed?
Run Code Online (Sandbox Code Playgroud)
但事实并非如此
class Address < ActiveRecord::Base
after_validation :geocode, if: :address_changed? || :zipcode_changed?
Run Code Online (Sandbox Code Playgroud)
提前致谢.
如果您不想使用Thilo的Proc方法,那么您可以添加自己的自定义方法并使用它:
class Address < ActiveRecord::Base
after_validation :geocode, if: :address_or_zip_changed?
private
def address_or_zip_changed?
address_changed? || zipcode_changed?
end
end
Run Code Online (Sandbox Code Playgroud)
如果您在多次验证时需要相同的复合条件,这可能(或可能不)更好地读取并且非常方便.
| 归档时间: |
|
| 查看次数: |
2207 次 |
| 最近记录: |