どのようにAuthlogicのconfigブロックにインスタンス変数にアクセスできますか?

StackOverflow https://stackoverflow.com/questions/1890382

質問

の線に沿ってユーザモデルの何かを考えます

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 = ['dont@validate.me'].include?(instance_email)
  end

end

が、そこに利用できinstance_emailではありません。あなたはこの変数にアクセスするために、ユーザモデルのメソッドをオーバーライドする必要がありますか?どのようにこれを行うことができますか?

役に立ちましたか?

解決

クラスがロードされたときは、Authlogicブロックが評価されることができないので、それは何のインスタンスのコンテキストを持っていません。

あなたはあなた自身のバリデータを記述する必要があります。

class User < ...

  validate :validate_email

  ...

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

end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top