Что я в основном пытаюсь сделать, так это создать пользовательскую проверку, которая вызывает проверку подлинности по умолчанию RoR с определенными параметрами, чтобы попытаться уменьшить шаблонный шаблон (и эта проверка будет использоваться глобально всеми моделями)Использование валидатора по умолчанию в пользовательских проверках
способ сделать заказ валидации на определенное поле в RoR является использованием метода validates_each, как и
class SelectBooleanValidator < ActiveModel::EachValidator
def validate_each(record,attr,value)
#do validation here
end
end
То, что я пытаюсь сделать, это вызвать метод включения валидаторов в validator_each, так что select_boolean validation (который я реализую) просто использует валидатор включения с определенными параметрами , То есть я хочу сделать что-то вроде этого (обратите внимание, что этот код не на самом деле работает, но ниже того, что я в основном пытаюсь сделать)
class SelectBooleanValidator < ActiveModel::EachValidator
include ActiveModel::Validations
def validate_each(record,attr,value)
validates_with InclusionValidator, record,attr,value, {:in => [true, false],:message=>'can\'t be blank'}
end
end
И тогда я (в моей модели) вобще это
validates :awesome_field, select_boolean:true
Вместо того, чтобы делать это все время
validates :awesome_field, :inclusion => {:in => [true, false], message: 'can\'t be blank'}
Благодарности куч, это работало отлично! – mdedetrich