レスキュー ブロックの終了後のすべてのコードは、レスキュー ブロックにリターンがない場合にのみ解釈されます。したがって、rescue ブロックの最後で return を呼び出すことができます。
def index
begin
@user = User.find(params[:id])
rescue
flash[:notice] = "ERROR"
redirect_to(:action => 'index')
return
end
flash[:notice] = "OK"
redirect_to(:action => 'index')
end
また
def index
@user = User.find(params[:id])
# after is interpret only if no exception before
flash[:notice] = "OK"
redirect_to(:action => 'index')
rescue
flash[:notice] = "ERROR"
redirect_to(:action => 'index')
end
しかし、あなたの場合、rescue_fromまたはrescue_in_publicを使用する方が良いです
お気に入り
class UserController < ApplicationController
def rescue_in_public(exception)
flash[:notice] = "ERROR"
redirect_to(:action => 'index')
end
def index
@user = User.find(params[:id])
flash[:notice] = "OK"
redirect_to(:action => 'index')
end
end
しかし、rescue_in_public の使用はあまり良いアドバイスではありません