Overriding devise recoverable

时间:2018-07-24 10:14:22

标签: ruby-on-rails devise devise-recoverable

As my reputation is lower than 50, so Im not able to comment below the accepted answer in this post In Rails Devise gem how to modify the send_reset_password_instructions method? for more information.

I want to customize recoverable.rb in devise. I made a copy of it in my folder with path lib/devise/models/recoverable.rb. The problem is when request to send reset password instruction, I got error undefined method activerecord51? for Devise:Module. How do i solve this?

It seems my recoverable is not in Devise module. I tried a bit by making a copy of devise.rb in lib/ folder. But it doesn't help.

Can someone please help?

EDIT

Sorry for any inconvenience. At the moment Im just trying to pass more opts to the method send_reset_password_instructions.

Any idea about this?

1 个答案:

答案 0 :(得分:0)

在某些Rails初始化程序中如何?您可能正在覆盖原始的类/模块,因此所有其他方法都消失了。

# 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