Rails的3 AJAX更新部分不工作不刷新页面 [英] Rails 3 ajax update partial doesnt work without page refresh

查看:74
本文介绍了Rails的3 AJAX更新部分不工作不刷新页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的一个Rails 3的购物车。我有一个目录页,显示所有的产品和一个部分,让购物车的一个要点。所以,无论产品的用户添加至购物车显示在这个购物车的部分。现在,这是行不通的。我已经增加了产品放入购物车后打刷新,否则部分不更新。

I'm working on a Rails 3 shopping cart. I've a catalog page that displays all products and one partial that gives a gist of the shopping cart. So whatever product a user adds to the cart is displayed in this shopping cart partial. Now, this ain't working. I've to hit refresh after adding a product to cart, otherwise the partial doesn't update.

下面是我的code:

Cart_Controller添加方法

Cart_Controller add method

DEF增加
@cart = user_cart
  @deal = Deal.find(PARAMS [:ID])
   @item = @ cart.add(PARAMS [:ID])
   闪光[:通知] =增加#{@deal.deal_name}到购物车
     @cart = user_cart
    的respond_to办|格式|
     的format.html {redirect_to时root_path}
      format.js
    结束

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

add.js.erb

$(#shopping_cart)replace_html(<%= escape_javascript(渲染(:部分=>'购物车',:当地人=> {:车=> @cart }))%>);

产品页

< D​​IV ID =shopping_cart>
  <%=渲染:部分=> 车/车',
   :当地人=> {:车=> user_cart}%>
    <%结束%GT;
< / DIV>

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

&LT;%=的link_to加入购物车,{:动作=&GT; 添加,:ID =&GT; deal.id}:远程=&GT;真%&GT;

这是我在我的日志中看到:

This is what I see in my logs:

入门获得127.0.0.1在2011-07-02 18点零四分38秒-0700
/车/添加/ 2   处理由CartController#添加为JS
  参数:{ID=>2}
渲染车/ _cart.html.erb(9.6ms)
渲染车/ add.js.erb(11.7ms)
完成200 OK在274ms(浏览次数:23.4ms | ActiveRecord的:0.0ms)

Started GET "/cart/add/2" for 127.0.0.1 at 2011-07-02 18:04:38 -0700
Processing by CartController#add as JS
Parameters: {"id"=>"2"}
Rendered cart/_cart.html.erb (9.6ms)
Rendered cart/add.js.erb (11.7ms)
Completed 200 OK in 274ms (Views: 23.4ms | ActiveRecord: 0.0ms)

请帮我这个。

推荐答案

尝试

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

这篇关于Rails的3 AJAX更新部分不工作不刷新页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆