gpt4 book ai didi

ruby-on-rails - Rails 3 验证 :presence => false

转载 作者:行者123 更新时间:2023-12-02 15:15:39 26 4
gpt4 key购买 nike

这是我期望的一个非常简单的问题,但我在指南或其他地方找不到明确的答案。

我的 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

关于ruby-on-rails - Rails 3 验证 :presence => false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com