如何访问Authlogic配置块中的实例变量?

时间:2009-12-11 19:34:49

标签: ruby-on-rails ruby authentication authlogic

给定用户模型的内容:

class User < ActiveRecord::Base

  acts_as_authentic do |config|
    config.validate_email_field = true
  end

end

我希望能够修改“true”以特定于正在注册的用户。我希望能够做到这样的事情:

class User < ActiveRecord::Base

  acts_as_authentic do |config|
    config.validate_email_field = ['dont@validate.me'].include?(instance_email)
  end

end

但是那里没有instance_email。您是否必须覆盖用户模型上的方法才能访问此变量?怎么办呢?

1 个答案:

答案 0 :(得分:3)

您不能因为在加载类时评估Authlogic块并且它没有实例上下文。

您需要编写自己的验证器。

class User < ...

  validate :validate_email

  ...

  def validate_email
    if !['dont@validate.me'].include?(instance_email)
      # write here your validation logic
    end
  end 

end