2011-07-03 9 views
3

私はRails 3ショッピングカートに取り組んでいます。私はすべての製品を表示するカタログページと、ショッピングカートの要点を示す部分を持っています。したがって、ユーザーがカートに追加する製品は、このショッピングカートの一部に表示されます。今、これは動作していません。カートに商品を追加した後にリフレッシュする必要があります。そうしないと、部分は更新されません。ここで Rails 3 ajax update部分的にページリフレッシュなしで動作しません

は私のコードです:

Cart_Controllerはメソッド追加

def add
@cart = user_cart
@deal = Deal.find(params[:id])
@item = @cart.add(params[:id])
flash[:notice] = "Added #{@deal.deal_name} to cart"
@cart = user_cart
respond_to do |format|
format.html{ redirect_to root_path}
format.js
end

add.js.erb

$("#shopping_cart").replace_html("<%=escape_javascript(render(:partial => 'cart', :locals => {:cart => @cart}))%>");

製品ページ

<div id="shopping_cart">
<%=render :partial => 'cart/cart',
:locals => {:cart => user_cart}%>
<%end%>
</div>

<%=link_to "Add to Cart",{:action => 'add', :id => deal.id}, :remote => true%>

これは私が私のログに見えるものです:

は2011-07-02 18で127.0.0.1のために、 "/カート//2を追加" GET開始:04:{ "ID" => "2"}
レンダリングカート/ _cart.html.erb(9.6ms):CartController番号:38 -0700
処理はJS
パラメータとして追加します レンダリングされたカート/ add.js.erb(11.7ms)
完了274msで200 OK(Views:23.4ms | ActiveRecord:0.0ms)

私を助けてください。

+0

を試してみてください? – Dex

+0

jqueryを使用しています – rb512

答えて

4

あなたは、プロトタイプやjqueryのを使用して

$("#shopping_cart").html("<%= escape_javascript(render(:partial => 'cart', :locals => {:cart => @cart})).html_safe %>"); 
+0

クール、それは今動作します!ありがとうDex! – rb512

関連する問題