8

Sto provando a determinare se mostrare il pulsante Spanish o sulla mia applicazione web.Come verificare se la locale corrente è uguale a una stringa

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

Il if condizione sempre fallisce e il pulsante spagnola viene sempre visualizzato.

RubyMine mostrare questo al momento dell'ispezione (durante il debug):

enter image description here

Allora, perché è il confronto fallendo?

risposta

22

È necessario utilizzare il simbolo anziché la stringa durante la ricerca/confronto/impostazione della locale. Prova:

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

documentazione per I18n c'è http://guides.rubyonrails.org/i18n.html

1

Nel mio caso

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

ha fatto il trucco.

Problemi correlati