find(id)で見つからないとき<

ActiveRecord::RecordNotFound例外が発生します。
例外のキャッチは、rescueにて行うらしい。

def show
 @log = Log.find(params[:id])
rescue
 logger.error("存在しないログ(#{params[:id]})にアクセスしようとしました。")
 flash[:notice] = '指定のページが見つかりません。'
 redirect_to(:controller => 'error')
end

な感じ。
一応簡単に解説すると
logger.error()は何かのためになるかもなので、ログファイルに出力。
flashにて、メッセージを設定。
redirect_toにて画面遷移。

このログへのコメント(0件)

コメント投稿フォーム

コメント

※半角英数字だけのコメントは投稿できません。

トラックバック

関連ログ