如何覆盖Devise密码控制器:
https://github.com/plataformatec/devise/blob/master/app/controllers/devise/passwords_controller.rb
我想做以下事情:
- 将所有提交以重置密码的电子邮件向下键。数据库中的所有电子邮件都是小写的。如果用户试图重置任何大写字符的有效电子邮件,则重置操作将无法找到用户。而且该设计甚至没有给出一条错误消息,说没有找到用户
- 如果在def-create中找不到用户,我想添加一个flash,上面写着,没有找到用户,你输入了正确的电子邮件吗
我怎样才能完成以上两项?我认为这需要重写设计密码控制器。我该怎么做?或者,如果你有一个更好的解决方案,甚至更清洁,我想听听它。
感谢
设计初始值设定项有一个选项可以使任何字段不区分大小写:
config.case_insensitive_keys = [ :email ]
如果我没记错的话,它是在新版本中添加的,如果你在初始化器中没有看到一些相关的注释,那么你应该使用bundle upgrade devise
升级你的设计gem。我使用的是1.3.3版本。如果输入了无效的电子邮件,此版本还会显示错误"未找到电子邮件"。
如果没有收到错误消息,请将<%= devise_error_messages! %>
添加到您的视图中。您可以通过编辑config/locales/devise.en.yml
自定义错误消息