Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 当多个字段的验证失败时,显示相应的错误消息_Ruby On Rails_Validation - Fatal编程技术网

Ruby on rails 当多个字段的验证失败时,显示相应的错误消息

Ruby on rails 当多个字段的验证失败时,显示相应的错误消息,ruby-on-rails,validation,Ruby On Rails,Validation,我在我的产品模型上设置了一个验证规则,以检查名称和数量这两个字段是否唯一。例如,您可以 奥利奥12包 奥利奥100包 两者都是有效条目。但是,你不能有两张奥利奥100块装的唱片 我使用了这个问题中描述的方法来设置规则(),但是默认的错误消息只是突出显示第一个字段,并说它已经被使用了,这并不能准确地向试图插入产品信息的用户描述问题 如果这是在多个字段上验证唯一性的通用Rails解决方案,那么如何根据失败的规则适当设置验证消息 如果有其他解决方案会自动显示相应的错误消息,那么会是什么?有两种方法

我在我的
产品
模型上设置了一个验证规则,以检查名称和数量这两个字段是否唯一。例如,您可以

  • 奥利奥12包
  • 奥利奥100包
两者都是有效条目。但是,你不能有两张奥利奥100块装的唱片

我使用了这个问题中描述的方法来设置规则(),但是默认的错误消息只是突出显示第一个字段,并说它已经被使用了,这并不能准确地向试图插入产品信息的用户描述问题

如果这是在多个字段上验证唯一性的通用Rails解决方案,那么如何根据失败的规则适当设置验证消息


如果有其他解决方案会自动显示相应的错误消息,那么会是什么?

有两种方法。假设您的模型设置如下:

class Product < ActiveRecord::Base
  ...
  validates_uniqueness_of :quantity, scope: :name
  ...
 end
  • 不太受欢迎的方式,但仍然应该是直接在验证本身

    validates_uniqueness_of :quantity, scope: :name, message: "Product and quantity are not unique. And, Oreo's are delicious."
    
  • validates_uniqueness_of :quantity, scope: :name, message: "Product and quantity are not unique. And, Oreo's are delicious."