2009-12-11 74 views
0

鑑於沿線的用戶模型的東西:如何訪問Authlogic配置塊中的實例變量?

class User < ActiveRecord::Base 

    acts_as_authentic do |config| 
    config.validate_email_field = true 
    end 

end 

我希望能夠修改「真」是特定於註冊用戶。我希望能夠做到這樣的事情:

class User < ActiveRecord::Base 

    acts_as_authentic do |config| 
    config.validate_email_field = ['[email protected]'].include?(instance_email) 
    end 

end 

但是instance_email在那裏不可用。您是否必須覆蓋用戶模型中的方法才能訪問此變量?如何才能做到這一點?

回答

3

你不能這樣做,因爲Authlogic塊是在加載類時評估的,它沒有實例上下文。

您需要編寫自己的驗證器。

class User < ... 

    validate :validate_email 

    ... 

    def validate_email 
    if !['[email protected]'].include?(instance_email) 
     # write here your validation logic 
    end 
    end 

end