rails i18n 传递的参数丢失

rails i18n passed params get lost

我开始在我的应用程序中使用 i18n,但是我通过传递带有 [=45= 的参数访问的所有页面] 不工作。

所以,假设我目前在这个页面上

/ar/browse?type=art

我通过点击这个 link_to

<%= link_to "/ART/", browse_url(:type => "art")%>

然后我决定通过点击这个来更改语言:

<%= link_to_unless_current "en", locale: 'en', :class => 'my-navbar-link' %>

更改语言后,这就是我被引导到的内容

/en/browse?class=my-navbar-link

type 参数在我更改语言后丢失。结果它没有将我定向到正确的页面

希望我说清楚了。我不确定如何修复它:/

提前致谢。

您错误地向 link_to_unless_current 传递了参数。以下是您需要做的:

link_text = "en" # or whatever you like
html_class = "my-navbar-link"

link_to_unless_current link_text,
                       {locale: "en", type: params[:type]},
                       {class: html_class}

即您需要将 link 选项与 HTML 选项分开。