ruby-on-rails - 数值验证,在比较中捕获零值

标签 ruby-on-rails validation

我有一个包含数字范围和描述 [min_val, max_val, name] 的对象。 我需要验证 min_val < max_val。但是,如果其中之一为空,我会收到零比较错误,相反,我想告诉用户需要一个数字。

另外,如何更改数值错误消息?

validates :min_val, :presence => true, :numericality => {:greater_than => 0, :less_than => :max_val}

validates :max_val, :presence => true, :numericality => {:greater_than => 0, :greater_than => :min_val}

validates :name, :presence => true, :if => Proc.new { |r| !r.min_val.nil? || !r.max_val.nil? }

最佳答案

您可以使用:message指定自定义错误消息。

validates :max_val, :presence => true, :numericality => {:greater_than => 0, :message => " is an invalid number."}
validates :min_val, :presence => true, :numericality => {:greater_than => 0, :message => " is an invalid number."}
validate do |record|
  record.errors.add_to_base("The min_val should be less than max_val") if min_val.to_i >= max_val.to_i
end
validates :name, :presence => true, :if => Proc.new { |r| !r.min_val.nil? || !r.max_val.nil? }

关于ruby-on-rails - 数值验证,在比较中捕获零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5208895/

相关文章:

ruby-on-rails - 你如何使用 cancan 和 devise 添加角色 rolify?

jquery - 如何在 View 文件夹中使用js文件

ruby-on-rails - 如何使用 Rails 4 以一种形式添加多个多对多字段?

jQuery 在提交前检查输入不为空

ajax - 在Grails中应用服务器端Javascript验证

HTML5 - 模式属性将无法正常工作

eclipse - 在 Eclipse 中实现验证器

ruby-on-rails - 是否有与 PHP 的 isset() 等效的 Rails?

ruby-on-rails - 在 cucumber 中与 factory_girl 建立关联的最佳做法是什么?

java - 在 login.class 上验证时,来自共享首选项的数据不正确