ajax - 没有页面刷新,Rails 3 ajax 更新部分不起作用

标签 ajax ruby-on-rails-3 renderpartial

我正在研究 Rails 3 购物车。我有一个显示所有产品的目录页面和一个显示购物车要点的部分页面。因此,用户添加到购物车的任何产品都会显示在此购物车部分中。现在,这行不通了。将产品添加到购物车后我必须点击刷新,否则部分不会更新。

这是我的代码:

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

添加.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:04:38 -0700 开始为 127.0.0.1 获取“/cart/add/2”
CartController处理#add as JS
参数:{"id"=>"2"}
渲染的 cart/_cart.html.erb (9.6ms)
呈现 cart/add.js.erb (11.7ms)
在 274 毫秒内完成 200 OK( View :23.4 毫秒 | ActiveRecord:0.0 毫秒)

请帮我解决这个问题。

最佳答案

尝试

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

关于ajax - 没有页面刷新,Rails 3 ajax 更新部分不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560592/

相关文章:

javascript - 访问主机名/端口号以调用 ajax 请求

javascript - ruby 轨道 : Render HTML partial as a one line of string

ruby-on-rails-3 - 导轨 3 + Rspec 2 : Validation failed: Email has already been taken

asp.net-mvc - 带有相对路径的 ASP.Net MVC 和 RenderPartial

c# - Umbraco mvc,渲染部分 View 无法解析为类型

javascript - 跨域通信?

javascript - 通过 AJAX 提交 google 表单后停止页面重定向

javascript - 是否有函数可以查找当前使用 XMLHtttpRequest 从文件加载的字节数?

ruby-on-rails - 正在安装 acts_as_commentable,在创建时,错误 : "unknown attribute: book_id"

razor - 为什么我不能在 App_Code 文件夹中的 Razor 助手 View 文件中使用 Html.RenderPartial?