gpt4 book ai didi

ruby-on-rails - :greater_than_or_equal_to in validates_numericality_of only partially working in rails 3. 1

转载 作者:行者123 更新时间:2023-12-04 01:30:45 34 4
gpt4 key购买 nike

我们正在使用以下内容来检查 stock_qty (整数或浮点数。可能为零但不为零)是否大于或等于零:

validates_numericality_of :stock_qty, :greater_than_or_equal_to => 0
validates_numericality_of :stock_qty, :less_than_or_equal_to => :in_qty, :if => Proc.new { |part| !part.in_qty.nil? }

:in_qty 是零件模型中的一列。此验证应允许 :stock_qty 为正数或 0。问题是如果 :stock_qty 被分配为零,则 rspec 失败。我注意到:less_than_or_equal_to 只允许less_than 而不允许equal_to。有没有办法验证 rails 3.1 中的 >= 或 <= ?或者我们上面的验证代码可能出了什么问题。非常感谢。

最佳答案

尝试添加 :only_integer => true像这样:

validates_numericality_of :stock_qty, :only_integer => true, :greater_than_or_equal_to => 0

编辑

如果这需要在 stock_qty 为零或零时通过,您需要将代码更改为:
validates_numericality_of :stock_qty, :allow_nil => true, :greater_than_or_equal_to => 0
validates_numericality_of :stock_qty, :allow_nil => true, :less_than_or_equal_to => :in_qty, :if => Proc.new { |part| !part.in_qty.nil? }

关于ruby-on-rails - :greater_than_or_equal_to in validates_numericality_of only partially working in rails 3. 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198324/

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