Deviseで認証するUserモデルがあり、このようにvalid_passwordメソッドを上書きしたいのですが、クラス定義内のuser.rbにあります。
class User < ActiveRecord::Base
devise :database_authenticatable
# overwriting the valid_password from database_authenticatable
module PostDatabaseAuthenticatable
def valid_password?(password)
if old_password
# do something new
else
# call valid_password from DatabaseAuthenticatable
super
end
end
end
include PostDatabaseAuthenticatable
end
したがって、最初にdeviseを介してdatabase_authenticatableを含め、次にPostDatabaseAuthenticatableを含めて、Rails 3を読んだ内容に従って:alias_method_chainはまだ使用されていますか?deviseのvalid_passwordメソッドを完全に上書きする必要があります。
しかし、コードを実行すると、常に最初にこれが呼び出され、次にdeviseと呼ばれるものが作成されないため、上書きされません。
なぜ何かアイデアはありますか?