这是我期望的一个非常简单的问题,但我在指南或其他地方找不到明确的答案。
我的 ActiveRecord 有两个属性。我希望其中一个存在,另一个为零或空白字符串。
我该如何做相当于 :presence => false 的事情?我想确保该值为零。
validates :first_attribute, :presence => true, :if => "second_attribute.blank?"
validates :second_attribute, :presence => true, :if => "first_attribute.blank?"
# The two lines below fail because 'false' is an invalid option
validates :first_attribute, :presence => false, :if => "!second_attribute.blank?"
validates :second_attribute, :presence => false, :if => "!first_attribute.blank?"
或者也许有一种更优雅的方法来做到这一点......
我正在运行 Rails 3.0.9
为了允许对象当且仅当特定属性为零时才有效,您可以使用“包含”而不是创建自己的方法。
validates :name, inclusion: { in: [nil] }
这是针对 Rails 3 的。Rails 4 解决方案要优雅得多:
validates :name, absence: true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)