概要
Railsでパラメータにlocaleを指定するには default_url_optionsを使用すれば良い。
# app/controllers/application_controller.rb
def default_url_options
{ locale: I18n.locale }
end
しかしform_withをgetメソッドで更新したときlocaleパラメータは無くなってしまう。
解決
form_withにlocaleを含めれば良い。
<%= hidden_field_tag "locale", I18n.locale %>
参考サイト
- Rails 5: Search form not preserving locale url parameter – Stack Overflow
- Rails 国際化(i18n)API – Railsガイド
Comments