Ruby on rails 如何以最小值验证嵌套属性的数量?
两种模型:字段和值。值使用接受\u嵌套的\u属性\u嵌套到字段中 一个字段可以有许多值。该字段的属性输入类型为枚举,可以是:text、:checkbox、:radio ou:select。这些值是为该字段显示的选项,因此,如果Field.input_type为radio或select,则仅在字段中使用一个值是没有逻辑的 使用字段验证,如何防止插入只有一个值的字段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
谢谢我对您的问题不是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
据我所知,这是最简单的方法,但您也可以将其作为一个模型方法编写,在验证之前在回调中调用。实际上有很多方法可以做这类事情