我的用户模型正在使用devise进行身份验证,我想这样覆盖类定义中的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包含数据库认证表,然后包含我的postdatabaseauthenticatable,因此根据我所读的内容,它应该完全覆盖devise的有效密码方法。
但当我运行我的代码时,它总是先调用这个,然后再调用desve的mather,所以根本不会覆盖它。
你知道为什么吗?
最佳答案
实际上这一直都在起作用,我调试错了。
我也不需要模块越界,只需要创建一个有效的密码?用户类的(password)insdie方法执行该任务
关于ruby-on-rails - 如何在Devise中覆盖valid_password?(password),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12164362/