我的用户模型使用Devise进行身份验证,我希望覆盖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
首先我们通过设计包含database_authenticatable然后包含我的PostDatabaseAuthenticatable,所以根据我读到的Rails 3: alias_method_chain still used?它应该完全覆盖devise的valid_password方法。
但是当我运行我的代码时,它总是首先调用它,然后调用devise,所以根本不会覆盖它。
任何想法为什么?
答案 0 :(得分:1)
实际上这一直在起作用,我调试错了。 此外,我不需要模块覆盖,只需创建一个valid_password?(密码)方法insdie用户类完成工作