2017-06-14 57 views
1

我想提供一個有用的:長度驗證消息,告訴用戶當前值有多長。而不是「請將您的消息限制爲100個字符」,我想說,「請將您的消息限制爲100個字符;您目前有152個字符。」我可以在Rails i18n模型驗證消息中使用記錄本身

但是,在翻譯錯誤消息時,Rails i18n並未顯示Rails i18n使記錄本身可用於自檢。有沒有辦法像ActiveRecord模型的以下內容那樣獲得i18n消息?

too_long: "Maximum %{count} characters. You currently have %{value.length} characters." 

當我這樣做時,Rails拒絕插值 「%{} value.length」,只是使其通過。

回答

0

我認爲它可以幫助你:

# models/record.rb 
class Record < ApplicationRecord 
    validates :field, length: { 
    maximum: MAXIMUM_CHARS, 
    too_long: I18n.t("errors.messages.too_long", 
       count: MAXIMUM_CHARS, current_length: @record.title.length) } 
end 

# en.yml 
too_long: "Maximum %{count} characters. You currently have %{current_length} characters." 
+0

這個工作,是的,其實,我一直在做的事情。但我正在尋找一種方法來做到這一點,而不必明確地通過current_length並計入。如果@ 18n字符串中有「@ record」,但它似乎並不是。 – armchairdj

相關問題