#ruby-on-rails #ruby #ruby-on-rails-3 #validation
#ruby-on-rails #ruby #ruby-on-rails-3 #проверка
Вопрос:
Я использую Ruby on Rails 3, и я хотел бы получить имена полей для проверки. То есть я определил некоторую проверку для класса, и я хотел бы получить, какие поля (их имена) являются кандидатами для проверки при отправке формы.
Мне это нужно, потому что я хотел бы «поиграть» с атрибутами ошибки класса ( <name_class>.errors
).
Как я могу сделать?
Ответ №1:
Вы можете получить доступ к validators
методу вашей модели. Это вернет массив средств проверки в вашей модели.
Например, если у вас было это:
class User < ActiveRecord::Base
validates :name, :presence => true
validates :email, :uniqueness => true
end
Затем вы могли бы получить доступ к средствам проверки следующим образом:
User.validators
# => [#<ActiveModel::Validations::PresenceValidator:0x123456 @attributes=[:name], @options={}>....]
User.validators.first.attributes
# => [:name]
User.validators.first.class
# => ActiveModel::Validations::PresenceValidator