2013-05-11 62 views
1

我有一個簡單的問題 - 我需要將布爾(contract_pledge)轉換爲俄語(Да/Нет)中的yes/no格式。我以爲我可以很容易地找到答案,因爲如果你想在顯示頁面顯示覆選框似乎很自然。 我發現這兩個職位:如何輕鬆地將布爾值轉換爲是/否使用Rails I18n

我試圖將它們結合起來,但我失敗了。現在我只有英文是/否。 那是什麼我有我的觀點/views/lots/show.html.erb

<%= form_for([@lot.tender,@lot]) do |f| %> 
<table> 
... 
<tr> 
<td class="right"><b><%= f.label :contract_pledge %></b></td> 
<td><%=t @lot.contract_pledge.yesno %></td> 
</tr> 
... 
</table> 
<% end %> 

這是/config/initializers/boolean_path.rb我創建的文件:

class FalseClass 
    def yesno 
    "No" 
    end 
end 

class TrueClass 
    def yesno 
    "Yes" 
    end 
end 

這是我的/配置/locales/ru.yml

ru: 
    yesno: 
     Yes: "Да" 
     No: "Нет" 

我當然可以解決地塊視圖插入俄語的問題,但我想這樣做在軌方式。我會很感激任何幫助,我認爲這個問題對其他rails年輕程序員會有用。

回答

1

將返回「是」或「否」,所以你必須把這些鍵:

<td><%= t @lot.contract_pledge.yesno %></td> 

您還可以找到部分2.3有用http://guides.rubyonrails.org/i18n.html#setting-and-passing-the-locale至2.6

+0

我試圖_t_ funclion現在的樣子你寫了,但它仍然返回英語是的。默認區域設置已被設置。它適用於ActiveRecord本地化 – 2013-05-11 17:35:19

+0

你的意思是I18n.locale是:ru? – juanpastas 2013-05-11 23:47:32

+0

在我的application.rb文件中我有'config.i18n.default_locale =:ru' – 2013-05-17 17:46:26

相關問題