railsのraiseメソッドでエラーを起こすのには成功したんですが、rescue_fromメソッドで例外処理に以降しません
下のコードのどこが間違ってますか?
ruby
1class ApplicationController < ActionController::Base 2 layout :set_layout 3 4 puts "ApplicationControllerだよ" 5 class Forbidden < ActionController::ActionControllerError; end 6 class IpAddressRejected < ActionController::ActionControllerError; end 7 rescue_from StandardError, with: :rescue500 8 rescue_from Forbidden, with: :rescue403 9 rescue_from IpAddressRejected, with: :rescue403 10 11 private def set_layout 12 if params[:controller].match(%r{\A(staff|admin|customer)/}) 13 Regexp.last_match[1] 14 puts "set_layoutだよ" 15 else 16 "customer" 17 end 18 end 19 20 private def rescue403(e) 21 @exception = exception 22 puts "rescue403だよ" 23 render "errors/forbidden", status: 403 24 end 25 26 private def rescue500(e) 27 puts "rescue500だよ" 28 render "error/internal_server_error", status: 500 29 end 30end
ruby
1class Admin::TopController < ApplicationController 2 def index 3 raise IpAddressRejected 4 render action: "index" 5 end 6end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。