2016-12-02 15 views
0

我需要評估語言環境消息字符串中的某些表達式。它不是一種參數,因爲它的值在應用程序配置中,但它是表達式的一種,所以我不需要它在消息中被硬編碼。另外,參數不適合我,因爲消息是由第三方的寶石控制器顯示的,而不是我的控制器。所以,我需要像這樣得到適當的評價:帶表達式的Rails國際化消息

I18n.t(:taken_in_past, scope: [:errors, :messages]) 

.yml文件:

en: 
    errors: 
     messages: 
     taken_in_past: "could not be equal to on of #{Devise.password_archiving_count} previous passwords" 

回答

0

這是唯一的想法,我並不在實踐中進行檢查。

可以爲缺少插值https://github.com/svenfuchs/i18n/blob/master/lib/i18n/config.rb#L107

在您的區域設置

taken_in_past: "could not be equal to on of #{password_archiving_count} previous passwords" 

,並在處理程序中替換此插值

case key 
when 'password_archiving_count' then Devise.password_archiving_count 
+0

我應該在哪裏把這個處理程序以及如何設置處理程序執行它? –