Ruby on rails 如果num1>;num2>;num3
我目前在Rails4上使用自定义验证时面临两个问题。第一个问题,我如何使下面的代码更加通用和高效(如果可能的话) 它真的又肿又脏,不是吗 第二个问题,关于Ruby on rails 如果num1>;num2>;num3,ruby-on-rails,validation,numbers,Ruby On Rails,Validation,Numbers,我目前在Rails4上使用自定义验证时面临两个问题。第一个问题,我如何使下面的代码更加通用和高效(如果可能的话) 它真的又肿又脏,不是吗 第二个问题,关于错误。添加,我可以传递一个符号和一条错误消息。但是,如果我不传递任何消息,我如何为我的地区定义自定义yml键?例如: en: activerecord: errors: models: prices: attributes: custom_key_message
错误。添加,我可以传递一个符号和一条错误消息。但是,如果我不传递任何消息,我如何为我的地区定义自定义yml键?例如:
en:
activerecord:
errors:
models:
prices:
attributes:
custom_key_message_here: 'p1 must be greater than everything'
我想在区域设置和模型之间保持这种关注的分离。但是,如果我没有传递任何消息,则表明show me无效。我想再解释一下
感谢您的帮助。快速查看,您是否可以使用:
validates :p1, presence: true, numericality: { greater_than: :p2 }
validates :p2, presence: true, numericality: { greater_than: :p3 }
validates :p3, presence: true
只要p1>p2
和p2>p3
,就不需要直接比较p1
和p3
。这是假设所有三个值都必须存在,但如果它们是可选的,您可能会调整它们以使其正常工作。完美。在论坛上,我发现这是不可能的,因为大于
只接受整数,所以我甚至没有亲自使用属性来尝试。工作起来很有魅力。谢谢
validates :p1, presence: true, numericality: { greater_than: :p2 }
validates :p2, presence: true, numericality: { greater_than: :p3 }
validates :p3, presence: true