Я использую I18
для управления переводом, и у меня есть simple_form
для сбора данных от пользователя.Все работает хорошо, за исключением случаев, когда пользователь меняет язык во время выполнения формы, в этом случае я теряю данные и параметры, отправленные в эту форму.
Вот мой код маршрутов
Rails.application.routes.draw do
scope '(:locale)', locale: /#
{I18n.available_locales.join("|")}/ do
ActiveAdmin.routes(self)
end
Вот мой код контроллера приложения:
...
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options = {})
{ locale: I18n.locale }
end
...
Вот код моей формы:
<%= simple_form_for @traveller, html: { class: "sigPad"} do |f| %>
<%= f.input :name %>
<%= f.input :surname %>
<%= f.input :surnames %>
<br>
<%= f.hidden_field :part_id, value: @traveller.part_id %>
<br>
<br>
<%= f.button :submit, t("application.val"), class: 'btn btn-success' %>
<% end %>
Вот ссылки в нижнем колонтитуле для изменения локали:
<li class="flag">
<%= image_tag "es.png" %>
<%= link_to "Español", locale: "es" %>
</li>
<li class="flag">
<%= image_tag "uk.png" %>
<%= link_to "English", locale: "en"%>
</li>