2
我不能够访问该值,如 'validates_with'选项
我的模型选项传递:
class Person < ActiveRecord::Base
include ActiveModel::Validations
attr_accessible :name, :uid
validates :name, :presence => "true"
validates :uid, :presence => "true"
validates_with IdValidator, :attr => :uid
我的自定义验证:
Class IdValidator < ActiveModel::Validator
def validate(record)
puts options[:attr]
...
...
end
end
对于测试目的,我正在打印“options [:attr]”,我看到的只是终端中的“:uid”,而不是其中的值。请帮忙!
'puts record.uid'在我的模型中执行'validates_with IdValidator'时会起作用。当我有一个选项并且我想要访问它时,问题就会出现。 – Gooner 2012-08-01 03:42:43
我这样做是因为我打算让我的验证器干掉,并允许不同的模型访问相同的自定义验证器。在另一个模型中,名称'uid'可能具有不同的名称。 – Gooner 2012-08-01 03:46:05
那么你要找的是'validates_with IdValidator,:attr => self.uid',我想? – workergnome 2012-08-01 13:56:33