8

WebアプリケーションにSpanishまたはEnglishボタンを表示するかどうかを判断しようとしています。現在のロケールが文字列と等しいかどうかを確認する方法

<% if I18n.locale == 'es' %> 
    <a href="<%= set_english_path %>" class="thin">English</a> 
<% else %> 
    <a href="<%= set_spanish_path %>" class="thin">Spanish</a> 
<% end %> 

if条件は常に失敗し、スペイン語のボタンが常に表示されます。

ルビーマインは、(デバッグ時)検査時にこれを示す:

enter image description here

はなぜ比較が失敗していますか?

答えて

22

ロケールを検索/比較/設定するときは、文字列の代わりにsymbolを使用する必要があります。試してみてください:国際化のための

<% if I18n.locale == :es %> 

ドキュメントは

if I18n.locale.to_s == 'zh-CN' 
    ... 

はトリックをした私の場合はそこhttp://guides.rubyonrails.org/i18n.html

関連する問題