我写了这个自定义验证器:
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
答案 0 :(得分:2)
我必须选择与attributes
不同的名称作为我的选择。现在它被称为attribute_order
并且工作正常。