

以下のコードで、アプリのヘッダーから言語切替ができるようにしました。

[code]

    <% if I18n.locale.to_s == "ja" %>
      <li class="nav-item">
         <%= link_to "Việt / 日本語", {:locale => "vi"}, {class: "nav-link"} %>
      </li>
    <% else %>
      <li class="nav-item">
         <%= link_to "Việt / 日本語", {:locale => "ja"}, {class: "nav-link"} %>
      </li>
    <% end %>
    
    ルーティング(一部)
    users GET    (/:locale)/users(.:format)       users#index {:locale=>/ja|vi/}
          POST   (/:locale)/users(.:format)       users#create {:locale=>/ja|vi/}
    
[/code]

例えば、会員登録に失敗した後、このボタンを押すとGETリクエストと認識されてindexにルーティングされるのですが、  
会員登録ページのまま、言語だけ切替える方法は無いのでしょうか。

[code]

    users GET    (/:locale)/users(.:format)       users#new {:locale=>/ja|vi/}
    
[/code]

こちらを追加すると解決できそうですが、今度はindexアクションへのルーティングが成り立たなくなります。  
どうすればよいか教えていただけないでしょうか。


CC BY-SA 4.0
2020-05-17T10:46:16.430
66714
2020-05-17T10:46:16.430
38225
question
ruby-on-rails ruby i18n
POSTリクエストを送った後、言語切替をするとindexアクションにルーティングされてしまう