2013-01-11 55 views
0

如何使用select_tag更改语言环境?在Rails 3应用程序中使用select_tag更改语言环境

<%= form_tag ({:action => "set_locale"}) do %> 
     <%= select_tag "select_lang", options_from_collection_for_select(@languages, "two_letter_code", "name") %> 
     <%= submit_tag("set language") %> 
    <% end %> 

在我的ApplicationController我有一个set_locale方法:

def set_locale 
    I18n.locale = params[:locale] if params.include?('locale') && !Language.where(:two_letter_code => params[:locale]).empty? 
end 

但它不工作...

谢谢。

+0

链接可能是解决方案: ** 1 ** [Select Function for Internationalization API](http://stackoverflow.com/questions/13497177/how-to-use-javascript-selected-functionality-when-特定语言选择) ** 2 ** [设置基于位置的区域设置](http://stackoverflow.com/questions/13310812/set-locale-automatically-in-ruby-on-rails) – TheMouseMan

+0

你到底是怎么解决这个问题的? –

回答

0

我认为你的问题是参数是一个字符串(“en”)而不是符号(:en)。 params [:locale] .to_sym可能会有所帮助。

相关问题