Rails3.1:自定义验证器中的选项?

时间:2011-10-20 17:08:52

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

我写了这个自定义验证器:

class SecureTokenValidator < ActiveModel::EachValidator
  def validate_each(object, attribute, value)
    Rails.logger.debug("validate_each options: #{options.inspect}")
  end
end

这里是模特:

class User < ActiveRecord::Base
  has_secure_password

  attr_accessor :token

  validates_length_of :password, minimum: 6
  validates_uniqueness_of :email

  validates :token, secure_token: {attributes: %w(salutation first_name last_name) }
end

但是选项没有传递给验证器,这里是日志中的条目:

validate_each options: {}

为什么呢?我在Ruby 1.9.2p290上使用Rails 3.1.1

1 个答案:

答案 0 :(得分:2)

我必须选择与attributes不同的名称作为我的选择。现在它被称为attribute_order并且工作正常。