Ruby on rails RubyonRails:控制ActiveRecord中错误消息的布局
Rails中的错误消息如下所示: “电子邮件您的电子邮件无效。” 为什么字段的名称在字符串本身中加前缀?这使得错误消息看起来非常奇怪 是否有任何方法可以绕过此行为,以便我可以看到“您的电子邮件无效”。的文档可能有用: 任何语言环境的默认完整消息格式为“Ruby on rails RubyonRails:控制ActiveRecord中错误消息的布局,ruby-on-rails,ruby,Ruby On Rails,Ruby,Rails中的错误消息如下所示: “电子邮件您的电子邮件无效。” 为什么字段的名称在字符串本身中加前缀?这使得错误消息看起来非常奇怪 是否有任何方法可以绕过此行为,以便我可以看到“您的电子邮件无效”。的文档可能有用: 任何语言环境的默认完整消息格式为“{{attribute}{{message}}”。可以指定特定于语言环境的默认完整消息格式,方法是将其存储为关键字“activerecord.errors.full\u messages.format”的翻译 此外,还可以通过存储“activere
{{attribute}{{message}}
”。可以指定特定于语言环境的默认完整消息格式,方法是将其存储为关键字“activerecord.errors.full\u messages.format
”的翻译
此外,还可以通过存储“activerecord.errors.full\u messages.[message\u key]
”的翻译来指定特定于验证的错误消息格式。例如,使用:blank作为消息键(如validates\u presence\u of)的任何验证的完整消息格式可以存储到:“activerecord.errors.full\u messages.blank
”
由于验证使用的消息键可以在validates_*类宏级别上覆盖,因此可以为任何特定验证自定义完整的_u消息格式:
# app/models/article.rb
class Article < ActiveRecord::Base
validates_presence_of :title, :message => :"title.blank"
end
# config/locales/en.yml
en:
activerecord:
errors:
full_messages:
title:
blank: This title is screwed!
#app/models/article.rb
类文章:“title.blank”
结束
#config/locales/en.yml
嗯:
activerecord:
错误:
完整信息:
标题:
布兰克:这个标题是错误的!
在您的情况下,由于您使用的是默认的{{attribute}{{message}}
格式,因此属性为“Email”,消息为“your Email is invalid”。您可以将:message
参数更改为“格式无效”,并且您应该得到“电子邮件格式无效”。这是快速解决办法。如果要完全自定义,可以使用上面的locale方法。的文档可能有用:
任何语言环境的默认完整消息格式为“{{attribute}{{message}}
”。可以指定特定于语言环境的默认完整消息格式,方法是将其存储为关键字“activerecord.errors.full\u messages.format
”的翻译
此外,还可以通过存储“activerecord.errors.full\u messages.[message\u key]
”的翻译来指定特定于验证的错误消息格式。例如,使用:blank作为消息键(如validates\u presence\u of)的任何验证的完整消息格式可以存储到:“activerecord.errors.full\u messages.blank
”
由于验证使用的消息键可以在validates_*类宏级别上覆盖,因此可以为任何特定验证自定义完整的_u消息格式:
# app/models/article.rb
class Article < ActiveRecord::Base
validates_presence_of :title, :message => :"title.blank"
end
# config/locales/en.yml
en:
activerecord:
errors:
full_messages:
title:
blank: This title is screwed!
#app/models/article.rb
类文章:“title.blank”
结束
#config/locales/en.yml
嗯:
activerecord:
错误:
完整信息:
标题:
布兰克:这个标题是错误的!
在您的情况下,由于您使用的是默认的{{attribute}{{message}}
格式,因此属性为“Email”,消息为“your Email is invalid”。您可以将:message
参数更改为“格式无效”,并且您应该得到“电子邮件格式无效”。这是快速解决办法。如果您想完全自定义它,可以使用上面的locale方法