[英]How to display custom error message for ActiveRecord::JDBCError in Ruby on Rails?
[英]Ruby on Rails: controlling the layout of an error message in ActiveRecord
我在Rails中的錯誤消息如下所示:
“電子郵件您的電子郵件無效。”
為什么字段的名稱在字符串本身前面加上前綴? 它使錯誤消息看起來非常奇怪。
無論如何都要規避這種行為,以便我能看到“你的電子郵件無效”。
generate_full_message的文檔可能有用:
任何區域設置的默認full_message格式為“ {{attribute}} {{message}}
”。 可以通過將其存儲為密鑰的轉換來指定特定於語言環境的默認full_message格式:“ activerecord.errors.full_messages.format
”。
另外,可以通過存儲以下內容的轉換來指定驗證特定的錯誤消息格式:“ activerecord.errors.full_messages.[message_key]
”。 例如,任何使用的驗證的full_message格式:空白作為消息密鑰(例如validates_presence_of)可以存儲到:“ activerecord.errors.full_messages.blank
”。
由於驗證使用的消息密鑰可以在validates_ *類宏級別上覆蓋,因此可以為任何特定驗證自定義full_message格式:
# 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!
在您的情況下,由於您使用的是默認的{{attribute}} {{message}}
格式,因此您將獲得該屬性的“電子郵件”和“您的電子郵件無效”作為郵件。 您可以將:message
參數更改為“不是有效格式”,您應該得到“電子郵件不是有效格式”。 這是快速修復。 如果要完全自定義它,可以使用上面的語言環境方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.