ruby-on-rails - 如何在狂欢中获得购物车订单项?
问题描述
我需要帮助来获取添加到购物车中的所有物品。我实际上显示了添加到购物车中的每种产品的数量。我试过 current_order 但它的行为很奇怪,有时它是正确的,但有时即使购物车是空的,它也会在 current_order 中显示产品,所以如果购物车更新它就会中断。你们能推荐我一种直接获取购物车物品的方法吗?
更新
在视图中
<% count = count_in_cart(simple_current_order, product) %>
<span class="badge badge-notify rounded-bottom"><%=count%></span>
在应用程序助手中
def count_in_cart(current_order, product)
return 0 unless current_order
product = current_order.line_items.select{|item| item.variant_id ==product.id}.last
product.present? ? product.quantity : 0
end
它在本地就像一个魅力,但在 heroku 上它没有显示计数。有人可以指导我做错了什么吗?
大礼包版本是 3.7.2
解决方案
问题在于您的 count_in_cart 函数。您编写的函数获取最后一个 line_item 的数量,但是您真正想要的是按产品计数。
def count_in_cart(current_order, product)
current_order.where(product: product).to_a.sum(&:quantity)
end
推荐阅读
- permissions - 我可以在 AppStore Connect 上授予某人进行 TestFlight 测试的最低权限是多少?
- google-apps-script - 向包含选定用户的 Slack Webhook 发送文本
- regex - ${any_text} 的正则表达式
- c++ - OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- concurrency - 在无锁列表之间移动值
- python - 从 mysql AttributeError 创建字典:“元组”对象没有属性“名称”
- c# - 在 DataGridComboBoxColumn 上设置 SelectedItemBinding
- android - ANDROID:如何计算光传感器数据的两个显着变化之间的差异?
- r - 内存问题内存数据帧。写输出的最佳方法?
- android - 将单独编译的类文件添加到 JavaFXPorts apk