ruby-on-rails Rails中的模型验证,用于测试数字是否可以为nil或某个正整数

y3bcpkx1  于 2023-10-21  发布在  Ruby
关注(0)|答案(2)|浏览(140)

如何验证一个模型与一个整数属性说customer_id在订单表中允许customer_id,但如果它可用,它应该大于0

class Order < ActiveRecord::Base
  validates :name, presence: true, length: {minimum: 3, maximum: 10}
  validates :customer_id,  numericality: {greater_than_or_equal_to: 1}, presence: false
end

我用上面的方法做了,但它不接受数字中的空值。

4xrmg8kj

4xrmg8kj1#

需要添加allow_nil: true
http://guides.rubyonrails.org/active_record_validations.html#allow-nil

oymdgrw7

oymdgrw72#

验证一个可以是nil或某个正整数的数字

您只需要将allow_nil: true添加到验证子句中。如果字段为nil,则将跳过验证。
因此,它应该看起来像:

validates :customer_id, numericality: { grater_than_or_equal_to: 1}, allow_nil: true

https://guides.rubyonrails.org/active_record_validations.html#allow-nil

相关问题