私は自分のアプリケーションのコントローラでこのメソッドを持っている:私がやりたい何application_controllerでメソッドを呼び出すにはどうすればよいですか?
before_action :set_locale
def set_locale
locale = params[:locale].to_s.strip.to_sym
I18n.locale = I18n.available_locales.include?(locale) ?
locale :
I18n.default_locale
end
def set_locale_or_redirect
unless no_locale_needed?
if params[:locale].present?
@current_locale = I18n.locale = params[:locale]
else
redirect_to locale: 'fr'
end
end
end
は(私もそこに私のナビゲーションメニューを持っている)、現在のURLを指しているが、ロケールを設定layouts/mylayout.html.erb
のリンクを入れていますパラメータと電話set_locale
。
どうすればよいですか?
ません。これは 'http:// localhost:3000/fr/bla/foo/bar?locale = eng'というURLを生成します。 ' – thiebo
@thieboあなたはこのアクションのルートを投稿できますか? 'params'は通常、'? 'の後ろにあるか、またはポストアクションの中にあります – Ruslan