0

次のようなユーザー モデルが与えられます。

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

4

1 に答える 1

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
于 2009-12-11T19:46:45.633 に答える