2009-12-11 5 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 

но экземпляр_память там недоступен. Нужно ли переопределять метод в пользовательской модели для доступа к этой переменной? Как это может быть сделано?

ответ

3

Вы не можете, так как блок Authlogic оценивается при загрузке класса и не имеет контекста экземпляра.

Вам необходимо написать собственный валидатор.

class User < ... 

    validate :validate_email 

    ... 

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

end 

 Смежные вопросы

  • Нет связанных вопросов^_^