微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – Rails:如果条件在验证中,则为多个

使用:Rails 3.0.3

我有这样的验证:

validates_numericality_of :person_weight_kg,:greater_than => 0,:message => "value_must_be_number_over_zero",:if => :bmi_calculation?,:if => :is_metric?

我想要验证多个if条件(例如在示例中).但是,似乎Rails将这些语句视为OR.一个返回false,一个返回true,使验证通过.

那么,如何检查这个验证是否满足BOTH if-statements(bmi_calculation AND is_metric)?

解决方法

使用lambda作为if条件:
validates_numericality_of :person_weight_kg,if: -> record { record.bmi_calculation? && record.is_metric? }

原文地址:https://www.jb51.cc/ruby/272784.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐