【发布时间】:2015-09-29 08:27:03
【问题描述】:
我正在使用 rails 开发一个基本的 depot 应用程序 我添加了一个按钮
<%= button_to 'Add to Cart', line_items_path(product_id: product) , remote: true %>
当我点击主页超链接然后再次点击按钮时,ajax被复制,如果我点击主页3次,按钮ajax调用3次等等
注意:当我从 application.js 中删除 jquery-ujs 时问题消失了
line_item 控制器
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product product
@line_item.save
respond_to do |format|
if @line_item.save
format.html { redirect_to store_url }
format.js { @current_item = @line_item }
format.json { render :show, status: :created, location: @line_item }
else
format.html { render :new }
format.json { render json: @line_item.errors, status: :unprocessable_entity }
end
end
end
主页操作
def index
@products = Product.order(:title)
@cart = current_cart
end
应用程序.js
// This is a manifest file that'll be compiled into application.js,
// listed below.
//
//= require jquery
//= require turbolinks
//= require jquery-ui
//= require jquery_ujs
//= require_tree .
ajax 响应应该呈现这个 js 文件 show.js.erb
$('#cart').html("<%=j render @cart %>");
//#START_HIGHLIGHT
$('#current_item').css({'background-color':'#88ff88'})
.animate({'background-color':'#114411'} , 1000);
使用 gem jquery rails 4.0.4
【问题讨论】:
-
请在帖子中包含您的 jQuery 和 .js.erb 视图文件。
-
我加了,谢谢通知
-
我在@Mohamed 的帖子中没有看到您的 AJAX 视图文件。此外,通常情况下,您的
create操作会导致页面重新加载,您将为 AJAX 操作使用单独的操作名称。 -
在我添加属性 remote='true' 时添加了 ajax,响应是行 format.js 。它应该呈现 create.js 然后将其作为响应发送单击按钮“添加到购物车”发送重复 ajax 请求的问题
标签: jquery ruby-on-rails ajax ruby-on-rails-4