Hy,我的申请有问题。在我的网页上,我有说明:<%= link_to"英语",:locale =>' en'%>当我在主页上时,它工作得很好,但如果我在URL中有很多参数,我就有错误,因为点击此链接后我只有一个参数。例如: http://localhost:3000/static_pages/search?utf8=%E2%9C%93&search=asd&locale=pl&commit=Szukaj 点击后: http://localhost:3000/static_pages/search?locale=en 有人知道我怎么能解决这个问题吗? 在布局中我有这一行:
<% if I18n.locale == I18n.default_locale %>
<%= link_to "English", :locale=>'en'%>
<% else %>
<%= link_to "Polski", :locale=>'pl'%>
当我想要访问时,它运行良好:static_pages / home或static_pages / contact,但是如果我有子页面,它需要表单中的参数,我想要更改语言,我有错误。 例如,我有这样的形式:
<%= form_tag(static_pages_search_path, :method => "get" ) do %>
<%= text_field(:post, :title, size: 20, :name =>"search", :style => "color: #C0C0C0; margin-top: 10px;", :placeholder => t('widok.wyszukiwarka.tekst'),:required => true,:minlength=>"3")%>
<%= hidden_field_tag 'locale', language %>
<%= submit_tag t('widok.wyszukiwarka.przycisk'),data: { disable_with: t('widok.wyszukiwarka.przycisk_czekaj') } %>
<% end %>
其中language = I18n.locale。
当我点击sumbit_tag时一切正常,但如果我想更改此子页面上的语言我有错误,因为URL只有一个参数:locale并且没有参数搜索和提交
答案 0 :(得分:0)
感谢Kristján的帮助。我使用<%= link_to "English", params.merge({:locale=>'en'})%>
,现在aplication工作:)