Rails меняет локаль с выпадающей таблицей

Я следил за руководством по началу работы с рельсами http://guides.rubyonrails.org/getting_started.html для моего первого приложения для рельсов.

Я хочу теперь иметь возможность менять язык сайта. Я также следовал этому руководству http://guides.rubyonrails.org/i18n.html и чтоб все работало.

Теперь я хочу настроить раскрывающуюся таблицу, чтобы пользователь мог выбрать язык, используя простой выбор, подобный этому:

= select "Site", "language", options_for_select([[t(:english), 'en'], [t(:spanish), 'es']])

Но я не понимаю, как сохранить/отправить то, что выбирает пользователь.

Например, у меня есть базовый WelcomeController.

class WelcomeController < ApplicationController
  def index
  end
end

И его индексный вид с выбором:

h1 = t(:welcome_header)
= link_to t(:goto_blog), controller: 'articles'
= select "Site", "language", options_for_select([[t(:english), 'en'], [t(:spanish), 'es']])

(это все следует, как я сказал руководство по началу работы).

Итак, правильно ли я использую выбор? Как мне отправить, а затем изменить локаль с тем, что там выбирает пользователь?


person fedest    schedule 12.02.2016    source источник


Ответы (1)


Вы можете использовать что-то вроде этого:

index.html.haml

= form_tag welcome_path do
  = select_tag 'set_locale', options_for_select([[t(:english), 'en'], [t(:spanish), 'es']])
  = submit_tag 'submit'

welcome_controller.rb

class WelcomeController < ApplicationController
  def index
    if params[:set_locale]
      redirect_to welcome_url(locale: params[:set_locale])
    end
  end
end
person FixerRB    schedule 12.02.2016