2011-07-03 175 views
3

我正在使用Rails 3購物車。我有一個目錄頁面,顯示所有的產品和一個部分,它提供了購物車的要點。所以用戶添加到購物車的任何產品都會顯示在此購物車中。現在,這不起作用。添加產品到購物車後,我必須進行刷新,否則部分不會更新。Rails 3 ajax更新部分不工作沒有頁面刷新

這裏是我的代碼:

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%>

這是我看到在我的日誌:

入門使用 「/車/添加/ 2」 爲127.0.0.1在2011-07-02 18 :04:38 -0700
處理由CartController#添加爲JS
參數:{ 「ID」=> 「2」}
渲染購物/ _cart.html.erb(9.6ms)
Rendered cart/add.js.erb(11.7ms)
已完成200 OK in 274ms(查看: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