【发布时间】:2019-04-11 10:24:26
【问题描述】:
我已经定义了这个 ActiveRecord 验证
validates :attr_1, numericality: {
less_than_or_equal_to: :attr_2,
message: "...",
allow_nil: true,
}, if: [proc { |a| a.attr_2.present? }]
这似乎工作正常,但在 attr_1 == attr_2 的一种情况下我得到了误报。
我尝试调试打印消息中的值并放置这样的日志消息的问题
validates :attr_1, numericality: {
less_than_or_equal_to: :attr_2,
message: "%{value}, %{count} - ...",
allow_nil: true,
}, if: [proc { |a| Rails.logger.info "#{a.attr_1} <= #{a.attr_2} -> #{a.attr_1 <= a.attr_2}" ; a.attr_2.present? }]
此消息引发错误
9531.28, 9531.28 - ...
此外,在我看到的日志中
9531.28 <= 9531.28 -> true
这怎么可能?
编辑: 之前看到要比较的值是parsed as number,但是结果好像是一样的……
【问题讨论】:
标签: ruby-on-rails activerecord rails-activerecord