0

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

しかし、それは機能しません...

ありがとうございました。

4

1 に答える 1

0

あなたの問題は、パラメータが記号(:en)ではなく文字列( "en")であるということだと思います。params [:locale].to_symが役立つ場合があります。

于 2013-01-11T15:06:23.507 に答える