Rails 3.1 の実行 Ruby 1.92
AJAX を使用してショッピング カートを更新しようとしています。広告申込情報を作成するために、店頭に次のボタンがあります
<%= button_to " Buy ", line_items_path(product_id: product), remote: true, :class =>"blue-btn" %>
そして、私の line_items コントローラーの次の作成アクション
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
respond_to do |format|
if @line_item.save
format.html { redirect_to store_url,notice: 'your item was added.' }
format.js { @current_item = @line_item }
format.json { render json: @line_item,
status: :created, location: @line_item }
最後に、app/views/line_items ディレクトリにある create.js.erb テンプレートに次の RJS コードがあります。
$('#cart').html("<%=j render @cart %>");
ただし、カートに商品を追加すると、更新された数量と合計を確認するためにページを更新する必要があります。カートにアイテムを追加しようとするたびにサーバーのログを確認したところ、line_items/create.js.erb がレンダリングされたことが示されました。
2013-08-04 14:01:26 -0400 で 127.0.0.1 の POST "/line_items?product_id=1" を開始しました=>"1"} ←[1m←[35mCart Load (1.0ms)←[0m SELECT "carts".* FROM "carts" WHERE "carts"."id" = ? LIMIT 1 [["id", 64]] ←[1m←[36mProduct Load (0.0ms)←[0m ←[1mSELECT "products".* FROM "products" WHERE "products"."id" = ? LIMIT 1←[0m [["id" , "1"]] ←[1m←[35mLineItem ロード (0.0ms)←[0m SELECT "line_items".* FROM "line_items" WHERE "line_items"."cart_id" = 64 AND "line_ items"."product_id"