我使用设计用于英语/法语应用程序并且一直在翻译不同的视图。在devise / passwords / new.html.erb上我有一条消息,出现在"错误"输入电子邮件地址,然后输入密码说明"发送给我重置密码说明"按下按钮。
如果有@ missing:
,我会收到以下消息如果@中没有任何内容,或者@之前没有任何内容,则会显示不同的消息。
这条消息甚至消息类型似乎都没有出现在其他地方,这很奇怪。它似乎没有在以下文件中定义:
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
我认为邮件的后端与正则表达式验证电子邮件相关联,我不知道前端的来源(请记住,我对这一切都有点新意)。如果我无法翻译邮件,我至少可以停用此邮件。
答案 0 :(得分:2)
我做了一些研究,您收到的错误消息似乎是由浏览器触发的(您可能正在使用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