2011-07-03 137 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