show error message when trying to show a not existed page

This commit is contained in:
Fu Matthew 2013-01-03 13:50:27 +08:00
parent 5d6279a9ea
commit 6da528ef98
5 changed files with 39 additions and 2 deletions

View File

@ -2,9 +2,13 @@ class ApplicationController < ActionController::Base
protect_from_forgery protect_from_forgery
include ParserFrontEnd, ParserBackEnd, ApplicationHelper include ParserFrontEnd, ParserBackEnd, ApplicationHelper
include OrbitApp::ErrorHandlers include OrbitApp::ErrorHandlers::PageErrorHandler
include OrbitApp::ErrorHandlers::ObjectAuthErrorHandler
include OrbitApp::ErrorHandlers::ModuleAppErrorHandler
rescue_from ObjectAuthError, :with => :render_object_auth_error rescue_from ObjectAuthError, :with => :render_object_auth_error
rescue_from ModuleAppError, :with => :render_module_app_error rescue_from ModuleAppError, :with => :render_module_app_error
rescue_from PageError, :with => :render_page_error
layout :layout_by_resource layout :layout_by_resource

View File

@ -76,7 +76,7 @@ class PagesController < ApplicationController
end end
@item = Item.where(module_app_id: module_app.id,app_frontend_url:params[:app_action]).all_of("tag" => {"$in" => [nil,'']},"category" => { "$in" => [nil,'']}).first unless @item @item = Item.where(module_app_id: module_app.id,app_frontend_url:params[:app_action]).all_of("tag" => {"$in" => [nil,'']},"category" => { "$in" => [nil,'']}).first unless @item
@item = Item.where(module_app_id: module_app.id,app_frontend_url:params[:app_action]).first unless @item @item = Item.where(module_app_id: module_app.id,app_frontend_url:params[:app_action]).first unless @item
#TODO 需要做 error handler 處理沒有新增該模組頁面導致錯誤的可能性 raise PageError,'Missing Frontend Page'
end end
def save_from_no_lang_for_page def save_from_no_lang_for_page

3
app/errors/page_error.rb Normal file
View File

@ -0,0 +1,3 @@
class PageError < StandardError
end

View File

@ -0,0 +1,14 @@
# require "#{File.dirname(__FILE__)}/module_app_error_handler.rb"
# require "#{File.dirname(__FILE__)}/object_auth_error_handler.rb"
# require "#{File.dirname(__FILE__)}/module_app_error_handler.rb"
# require "#{File.dirname(__FILE__)}/page_error_handler.rb"
# module OrbitApp
# module ErrorHandlers
# module ApplicationsErrorHandler
# end
# end
# end

View File

@ -0,0 +1,16 @@
module OrbitApp
module ErrorHandlers
module PageErrorHandler
def render_page_error(exception = nil)
default_message = 'ModuleAppErrorHandler'
meaasge = ''
if exception
meaasge = default_message + exception.message
end
render :text=>meaasge
end
end
end
end