我让我的用户模型使用 Devise 进行身份验证,我想在我的类定义中的 user.rb 中覆盖 valid_password 方法
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
所以首先我们通过设计包含 database_authenticable 然后包含我的 PostDatabaseAuthenticatable 所以根据我读到的Rails 3: alias_method_chain 仍然使用?它应该完全覆盖设计的 valid_password 方法。
但是当我运行我的代码时,它总是先调用它,然后再调用设计,所以根本不会覆盖它。
任何想法为什么?