重写设计可恢复

Overriding devise recoverable

由于我的声誉低于 50,所以我无法在此 post In Rails Devise gem how to modify the send_reset_password_instructions method? 中接受的答案下方发表评论以获取更多信息。

我想在设计中自定义 recoverable.rb。我在路径为 lib/devise/models/recoverable.rb 的文件夹中复制了一份副本。问题是当请求 发送重置密码指令 时,我收到错误 undefined method activerecord51? for Devise:Module。我该如何解决?

我的 recoverable 似乎不在 Devise 模块中。我尝试在 lib/ 文件夹中复制 devise.rb 。但是没用。

有人可以帮忙吗?

编辑

对于给您带来的不便,我们深表歉意。目前我只是想将更多选项传递给方法 send_reset_password_instructions.

对此有什么想法吗?

在某些 rails 初始化程序中如何做?您可能会覆盖原来的 class/module,因此所有其他方法都消失了。

# config/initalizers/devise.rb
Devise::Models::Recoverable::ClassMethods.module_eval do
  def send_reset_password_instructions(your, params)
    token = set_reset_password_token
    send_reset_password_instructions_notification(token)

    token
  end
end