更改语言环境时丢失参数

时间:2019-03-12 09:33:37

标签: ruby-on-rails parameters rails-i18n

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

0 个答案:

没有答案