我正在使用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>