Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:控制ActiveRecord中错误消息的布局_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails RubyonRails:控制ActiveRecord中错误消息的布局

Ruby on rails RubyonRails:控制ActiveRecord中错误消息的布局,ruby-on-rails,ruby,Ruby On Rails,Ruby,Rails中的错误消息如下所示: “电子邮件您的电子邮件无效。” 为什么字段的名称在字符串本身中加前缀?这使得错误消息看起来非常奇怪 是否有任何方法可以绕过此行为,以便我可以看到“您的电子邮件无效”。的文档可能有用: 任何语言环境的默认完整消息格式为“{{attribute}{{message}}”。可以指定特定于语言环境的默认完整消息格式,方法是将其存储为关键字“activerecord.errors.full\u messages.format”的翻译 此外,还可以通过存储“activere

Rails中的错误消息如下所示:

“电子邮件您的电子邮件无效。”

为什么字段的名称在字符串本身中加前缀?这使得错误消息看起来非常奇怪

是否有任何方法可以绕过此行为,以便我可以看到“您的电子邮件无效”。

的文档可能有用:

任何语言环境的默认完整消息格式为“
{{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方法