Ответ 1
Вам не нужен плагин для основных потребностей.
Вы можете сделать это, чтобы получить хэш всех валидаторов.
ModelName.validators
Если вы хотите получить валидаторы для определенного поля:
ModelName.validators_on(:attribute)
Как cat я получаю список валидностей, определенных в модели
Пример:
class ModelName
validates_presence_of :field_name
validates_inclusion_of :sex, :in => %w(M F)
end
Мне нужен хэш вроде:
{:field_name => 'required', :sex => 'Must be in: M, F'}
Вам не нужен плагин для основных потребностей.
Вы можете сделать это, чтобы получить хэш всех валидаторов.
ModelName.validators
Если вы хотите получить валидаторы для определенного поля:
ModelName.validators_on(:attribute)
Похоже, нет собственного способа сделать это, но быстрый Google (для "рельсов отражают валидации" ) появляется этот плагин.
Если вы добавляете проверки динамически в свои модели, вы можете использовать экземпляр для вывода списка проверок:
product = Product.new
product.singleton_class.validators_on(:price)
#=> [#<ActiveModel::Validations::PresenceValidaton>]
Протестировано в Rails 5.2.
Этот код выдает массив обязательных полей. Это должно быть адаптировано к вашим потребностям.
@required_fields = []
ModelName.validators.each do |v|
@required_fields << v.attributes.first if v.kind == :presence
end