7

さまざまな言語へのリンクを含むナビゲーション バーがあります。

<%= link_to t('header.english'), locale: "en" %>

問題は、ユーザーが URL に追加のパラメーターを含むページで言語を切り替えようとした場合です。この時点でロケールを変更すると、ページがリロードされ、追加のパラメーターがすべて削除されます。

では、現在のページからロケール スイッチ リンクにすべてのパラメータを渡すにはどうすればよいでしょうか。

たとえば、

/page/new?param1=1&param2=2

が開いていて、ユーザーがロケールを切り替えます。

/page/new?locale=en

が開かれ、両方の追加パラメーターが URL から取り除かれます。

4

2 に答える 2

5

編集:これはこれを行う良い方法ではありません。以下のコメントを参照してください。

link_to問題は、ロケール スイッチャー リンクを作成するときに現在のパラメーターを渡していないことです。

ナビゲーション バーのリンクを次のように変更します。

<%= link_to t('header.english'), params.merge(locale: "en") %>

関連項目: link_to にクエリ文字列パラメーターを追加する

于 2012-10-04T13:37:14.193 に答える