8

Próbuję określić, czy wyświetlić przycisk Spanish lub English w mojej aplikacji internetowej.Jak sprawdzić, czy bieżące ustawienia narodowe są równe ciągowi znaków

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

Warunkiem ifzawsze zawodzi i przycisk hiszpański jest zawsze wyświetlany.

rubymine pokazać to w trakcie kontroli (podczas debugowania):

enter image description here

Więc dlaczego jest porównanie braku?

Odpowiedz

22

Powinieneś używać symbolu zamiast łańcucha podczas wyszukiwania/porównywania/ustawiania ustawień narodowych. Spróbuj:

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

Dokumentacja I18n ma http://guides.rubyonrails.org/i18n.html

1

W moim przypadku

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

załatwiło sprawę.