Guten Tag alle,Rails 4 Handhabung locale Fehlerseite
I Rails 4 und in meiner Website verwende ich die folgenden Links bin mit locale zu handhaben:
en - http://www.sample.com/XXXXX
zh- HK - http://www.sample.com/zh-HK/XXXXX
zh-CN - http://www.sample.com/zh-CN/XXXXX
Außerdem verwende ich die benutzerdefinierte Fehlerseite Methode 404, 4 zu handhaben 22 und 500 Fehler. dh
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'
config/environment/production.rb
Rails.application.configure do
config.exceptions_app = self.routes
end
app/controller/application_controller.rb
class ApplicationController < ActionController::Base
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
end
app/controller/errors_controller.rb
class ErrorsController < ApplicationController
def show
render status_code.to_s, :status => status_code, :layout => false
end
protected
def status_code
params[:code] || 500
end
end
**************** Hier ist mein Problem. ******************
Wenn ich tippe falscher Link in einem Muster wie http://www.sample.com/zh-HK/abc,
kann es mir die benutzerdefinierte Fehlerseite zeigen.
Wenn ich jedoch falsche Link wie z. http://www.sample.com/abc
(ohne Gebietsschema (eigentlich sollte es das Standardgebietsschema sein: en)),
Dies wird nicht auf meine benutzerdefinierte Fehlerseite gehen.
Stattdessen geben Sie mir eine Fehlerseite wie folgt aus:
Wie kann ich dieses Problem beheben, so dass, wenn es Standardgebietsschema verwendet (das ist keine locale in Verbindung bedeuten), kann es die benutzerdefinierte Fehlerseite verwenden? Vielen Dank!
Sie eine Antwort auf diese Frage gefunden? –