0

Railsを使用したアジャイルWeb開発の章の演習を行っています。カートに追加できる商品を取り揃えたお店です。カート内の商品はLineItemと呼ばれます。カート内の個々の広告申込情報を削除できます。最後の広告申込情報が削除されたら、カート全体を破棄したいと思います。私が持っているコードは機能しません:

CartsController

def destroy
  @cart = current_cart
  @cart.destroy
  session[:cart_id] = nil

  respond_to do |format|
    format.html { redirect_to store_path }
    format.json { head :no_content }
  end
end

LineItemsController

def destroy
  @cart = current_cart
  @line_item = LineItem.find(params[:id])
  quantity = @line_item.quantity

  if quantity > 1
    quantity -= 1
    @line_item.update_attribute(:quantity, quantity)
  else
    @line_item.destroy
  end

  respond_to do |format|
    format.html {
      if @cart.line_items.empty?
        @cart.destroy
      else
        redirect_to @cart
      end
    }
    format.json { head :no_content }
  end
end

これにより、次のエラーが発生します。

Template is missing

Missing template line_items/destroy, application/destroy with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/home/mike/Projects/depot/app/views"

カートが破壊されたら、store_pathに行きたいです。

ありがとう、マイク

4

1 に答える 1

0

追加を参照してください(コメントとして):

  if @cart.line_items.empty?
    @cart.destroy
    # redirect_to store_path
  else
于 2012-08-13T13:33:15.410 に答える