关于ruby on rails 4:Devise:更改”忘记密码”电子邮件表格错误消息

Devise: Change “forgot password” email form error message

我正在将devise用于英语/法语应用程序,并且一直在翻译不同的观点。在devise / passwords / new.html.erb上,当输入"错误的"电子邮件地址并按下"向我发送重设密码说明"按钮时,会出现一条消息。

如果缺少@,我会收到以下消息:

消息的图片

如果出现一个@,后面没有任何内容,或者一个@之前没有任何内容,则出现另一条消息。

此消息甚至消息类型似乎都没有出现在其他地方,这很奇怪。似乎未在以下文件中定义:

en.yml:github.com/plataformatec/devise/blob/master/config/locales/en.yml

devise_helper.rb:github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb

validatable.rb:github.com/plataformatec/devise/blob/master/lib/devise/models/validatable.rb

我认为消息的后端链接到正则表达式验证电子邮件,并且我不知道前端来自哪里(请记住,我对这一切有些陌生)。如果我无法翻译该消息,则至少希望能够停用此消息。


我已经进行了更多研究,并且您收到的错误消息似乎是由浏览器触发的(您可能正在使用Chrome)。换句话说,Devise与它无关。

email_field帮助器可能导致浏览器进行客户端验证。一种选择是使用经典的字段助手,例如text_field,或者可以添加novalidate来阻止浏览器的客户端验证。在最后一种情况下,如果需要一些限制,则应该添加一些自己的验证。

我个人非常喜欢simple_form,这就是在simple_form中解决此问题的方式:https://github.com/plataformatec/simple_form/wiki/HTML5-Attributes

或以html示例为例:http://www.w3.org/TR/html5/forms.html#concept-fs-novalidate