グッドデイ皆、Railsの4ハンドリングロケールのエラーページ
私はRailsの4を使用していますし、私のウェブサイトで、私はロケールを処理するために、以下のリンクを使用しています:
エン - http://www.sample.com/XXXXX
zh- HK - http://www.sample.com/zh-HK/XXXXX
ZH-CN - また、私は404を処理するために、カスタムエラーページの方法を使用していますhttp://www.sample.com/zh-CN/XXXXX
、4 22と500のエラー。 すなわち
のconfig/routes.rbを
scope "(:locale)", :locale => /en|zh-CN|zh-HK/ do
root 'home#index'
get '/' => 'home#index', as: :home_page
get 'about' => 'home#about', as: :about_page
end
%w(404 422 500).each do |code|
get code, :to => "errors#show", :code => code
end
get '/:locale' => 'home#index'
設定/環境/ production.rb
Rails.application.configure do
config.exceptions_app = self.routes
end
アプリ/コントローラ/ application_controller.rb
class ApplicationController < ActionController::Base
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
end
アプリ/コントローラ/ errors_controller.rb
ここでは0class ErrorsController < ApplicationController
def show
render status_code.to_s, :status => status_code, :layout => false
end
protected
def status_code
params[:code] || 500
end
end
****************私の問題である。******************
私が入力したときhttp://www.sample.com/zh-HK/abc、
のようなパターンで間違ったリンクを表示すると、カスタムエラーページが表示されます。
ただし、間違ったリンクを入力するとhttp://www.sample.com/abc
(実際にはデフォルトロケール:en))、
これは私のカスタムエラーページには行かないでしょう。
代わりに、それは私にこのようなエラーページ与える:それは(のリンクには、ロケールを意味しないこと)デフォルトロケールを使用している場合、それはカスタムエラーページを使用できるように、私はこの問題を解決するにはどうすればよい
を?ありがとうございました!
あなたがこれまでどんな答えを見つけますか? –