tanakahdaのプログラマ手帳

プログラミングとかソフトウェア開発とかの備忘録

ActiveRecord::RecordNotFoundの場合の例外処理

  # GET /carts/1
  # GET /carts/1.json
  def show
    begin
      @cart = Cart.find(params[:id])
    # 直リンク張られた時など
    rescue ActiveRecord::RecordNotFound
      logger.error "無効なカート#{params[:id]}にアクセスしようとしました"
      redirect_to store_url, notice: '無効なカートです'
    else
      respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @cart }
      end 
    end 
  end