Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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_Attributes_Nested_Minimum - Fatal编程技术网

Ruby on rails 如何以最小值验证嵌套属性的数量?

Ruby on rails 如何以最小值验证嵌套属性的数量?,ruby-on-rails,validation,attributes,nested,minimum,Ruby On Rails,Validation,Attributes,Nested,Minimum,两种模型:字段和值。值使用接受\u嵌套的\u属性\u嵌套到字段中 一个字段可以有许多值。该字段的属性输入类型为枚举,可以是:text、:checkbox、:radio ou:select。这些值是为该字段显示的选项,因此,如果Field.input_type为radio或select,则仅在字段中使用一个值是没有逻辑的 使用字段验证,如何防止插入只有一个值的字段 谢谢我对您的问题不是100%清楚,但如果我理解正确,您是否希望在字段模型的实例只有一个关联值时阻止其保存 class Field &l

两种模型:字段和值。值使用接受\u嵌套的\u属性\u嵌套到字段中

一个字段可以有许多值。该字段的属性输入类型为枚举,可以是:text、:checkbox、:radio ou:select。这些值是为该字段显示的选项,因此,如果Field.input_type为radio或select,则仅在字段中使用一个值是没有逻辑的

使用字段验证,如何防止插入只有一个值的字段


谢谢

我对您的问题不是100%清楚,但如果我理解正确,您是否希望在字段模型的实例只有一个关联值时阻止其保存

class Field < ActiveRecord::Base
  include ActiveModel::Validations
  has_many :values
  validates :values, :presence_of_multiple => true
end

class PresenceOfMultiple < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    record.errors[attribute] << "must have more than one." unless \
      value.exists? && value.count > 1
  end
end
类字段true
结束
Multiple

据我所知,这是最简单的方法,但您也可以将其作为一个模型方法编写,在验证之前在
回调中调用。实际上有很多方法可以做到这一点。

我对你的问题不是100%清楚,但是如果我理解正确,你想阻止字段模型的实例在只有一个关联值的情况下被保存吗

class Field < ActiveRecord::Base
  include ActiveModel::Validations
  has_many :values
  validates :values, :presence_of_multiple => true
end

class PresenceOfMultiple < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    record.errors[attribute] << "must have more than one." unless \
      value.exists? && value.count > 1
  end
end
类字段true
结束
Multiple
据我所知,这是最简单的方法,但您也可以将其作为一个模型方法编写,在验证之前在
回调中调用。实际上有很多方法可以做这类事情