Подтвердить что ты не робот

Получить подтверждение от модели

Как 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'}
4b9b3361

Ответ 1

Вам не нужен плагин для основных потребностей.

Вы можете сделать это, чтобы получить хэш всех валидаторов.

ModelName.validators

Если вы хотите получить валидаторы для определенного поля:

ModelName.validators_on(:attribute)

Ответ 2

Похоже, нет собственного способа сделать это, но быстрый Google (для "рельсов отражают валидации" ) появляется этот плагин.

Ответ 3

Если вы добавляете проверки динамически в свои модели, вы можете использовать экземпляр для вывода списка проверок:

product = Product.new
product.singleton_class.validators_on(:price)
#=> [#<ActiveModel::Validations::PresenceValidaton>]

Протестировано в Rails 5.2.

Ответ 4

Этот код выдает массив обязательных полей. Это должно быть адаптировано к вашим потребностям.

@required_fields = []
  ModelName.validators.each do |v|
  @required_fields << v.attributes.first if v.kind == :presence
end