2017-12-05 12 views
0

私はENとDEで利用できるアプリケーションを持っています。現在、ウェブサイトwww.example.comに入力すると、デフォルトのロケールにはリダイレクトされません。理想的には、ルートをすぐにリダイレクトして、私はwww.example.com/enというようになります。Railsのroot_pathを/ en/localeにリダイレクトする方法は?

アプリでroot_pathリンクをクリックすると、予想通りロケールwww.example.org/enを含むフロントページに移動します。

質問:www.example.comと入力したユーザーがすぐにwww.example.com/enにリダイレクトされるようにするにはどうすればよいですか?

ルート:

Rails.application.routes.draw do 
    scope '(:locale)', locale: /en|de/ do 
    root 'pages#landingpage' 

アプリケーションコントローラ:すべての

def set_locale 
    I18n.locale = params[:locale] || I18n.default_locale 
end 

def default_url_options(options = {}) 
    {locale: I18n.locale} 
end 
+0

ページコントローラからのランディングページの動作を確認できますか? – Matt

+0

そこには何もありません。ページをレンダリングするだけです。 – Andy

答えて

0

まずこの Internationalization guidelines

を通過してください今のルートでこれを試してみてください。

scope "(/:locale)" {} 

を使用し、設定でconfig.default_localeオプションを使用してください。ローカライズのためのフォールバックを設定できます。

ロケールを追跡するためにCookieを使用している場合は、default_url_optionsをスキップすることができますが、ローカライズされていないバージョンは下位互換性のために保管する必要があります。

関連する問題