簡體   English   中英

Ruby on Rails:控制ActiveRecord中錯誤消息的布局

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM