检索验证字段名称

时间:2011-05-29 00:28:26

标签: ruby-on-rails ruby ruby-on-rails-3 validation

我正在使用Ruby on Rails 3,我想检索验证字段名称。也就是说,我为一个类定义了一些验证,我想检索哪些字段(它们的名字)是提交表单时验证的候选者。

我需要这个,因为我想“玩”类错误属性(<name_class>.errors)。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

您可以访问模型的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