【发布时间】:2016-01-05 18:31:37
【问题描述】:
我正在按照本指南创建购物车模型: https://richonrails.com/articles/building-a-shopping-cart-in-ruby-on-rails
我让它成功运行,但仍然有问题。当我加载页面并添加一个项目时,会添加一个,如果我转到另一个页面,然后再次加载主页,通过我拥有的侧边栏菜单,我单击一个产品,然后添加相同的产品 3次到购物车。我转到另一个页面并返回,每次点击 5 项,再次每次点击 7 项。 我不知道为什么会这样,我什至不知道要显示我的代码的哪一部分,所以有人可以帮助我。 如果我重新加载页面(通过单击地址栏并输入),它会返回到每次单击添加一项。
提前致谢
编辑:在第一次评论建议之后,这里是控制器代码。
def create
@invoice = current_invoice
@invoice_product = @invoice.invoice_products.new(invoice_product_params)
@invoice.save
session[:invoice_id] = @invoice.id
end
def update
@invoice = current_invoice
@invoice_product = @invoice.invoice_products.find(params[:id])
@invoice_product.update.attributes(order_item_params)
@invoice_products = @invoice.invoice_products
end
def destroy
@invoice = current_invoice
@invoice_product = @invoice.invoice_products.find(params[:id])
@invoice_product.destroy
@invoice_products = @invoice.invoice_products
end
private
def invoice_product_params
params.require(:invoice_product).permit(:id, :invoice_id, :product_id, :price, :tax, :value)
end
【问题讨论】:
-
控制器代码将是一个好的开始!
-
我发现在 application.html.erb 中将 true %> 从正文移动到头部有效,但这使我的侧边栏菜单停止工作。出于某种原因,如果 js 事件在主体上,它会在每个请求上重新附加。有什么帮助吗?
-
恢复该行并删除 Turbolinks 并尝试一下:blog.steveklabnik.com/posts/…
-
无论如何我都不喜欢 Turbolinks,但如果您确实想再次使用它,至少我们可以缩小问题范围。
-
将其移回正文并删除 turbolinks,该行现在看起来像这样: 但是,问题仍然存在
标签: javascript ruby-on-rails ajax shopping-cart