如何覆盖Devise密码控制器?

时间:2011-05-26 18:26:47

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

如何覆盖设计密码控制器:

https://github.com/plataformatec/devise/blob/master/app/controllers/devise/passwords_controller.rb

我想做以下事情:

  1. 包含所有提交密码重置的电子邮件。 DB中的所有电子邮件都是小写的。如果用户尝试重置任何字符为大写的有效电子邮件,则重置无法找到用户。并且设计甚至没有给出错误消息,说没有用户找到
  2. 如果在def创建中找不到用户,我想添加一个闪存,说明没有找到用户,是否输入了正确的电子邮件?
  3. 如何完成上述2项?我认为需要覆盖设计密码控制器。我怎么做?或者如果你有一个更清洁的更好的解决方案,我想听听它。

    由于

1 个答案:

答案 0 :(得分:3)

设计初始化程序可以选择使任何字段不区分大小写:

config.case_insensitive_keys = [ :email ]

如果我没记错的话,它是在新版本中添加的,如果您在初始化程序中没有看到一些相关注释,那么您应该使用bundle upgrade devise升级您的设计gem。我使用的是1.3.3版本。 如果输入的电子邮件无效,此版本还会显示错误“未找到电子邮件”。

如果您没有收到错误消息,请在视图中添加<%= devise_error_messages! %>。您可以通过编辑config/locales/devise.en.yml

来自定义错误消息