ruby-on-rails - 如何在 Rails 中通过计数获得不同的记录?
问题描述
我正在使用当前架构在 Rails 6 上构建按需打印市场应用程序。
用户拥有具有许多 LineItem 的购物车,其中每个 LineItem 属于一个产品。因此,当用户将产品添加到购物车时,会创建一个 LineItem 并将其添加到购物车中。由于它是按需打印的,因此我决定为每种产品添加单独的 LineItem 以使退货更容易处理。
但是我想仅在带有计数的购物车页面上汇总和显示不同的产品。
假设我有三种产品 PA、PB、PC。我在购物车中添加了两次 PA 和三次 PB。我现在有两个 LA 和三个 LB。而不是显示LA, LA, LB, LB, LB
我想(LA 2), (LB 3)
在购物车页面上显示。
我能得到的最接近的是这个查询@line_items = current_user.cart.line_items.select(:product_id).distinct
解决方案
您可以为此使用 railsgroup
方法。以下是如何获取按计数分组的产品:
@line_items = current_user.cart.line_items.group(:product_id).count.reverse_each.to_h
推荐阅读
- swift - Swift Alamofire 补丁多形式
- installation - TiDB-ansible 安装 - ansible-playbook local_prepare.yml 命令失败
- javascript - 当该图像位于信息窗口(传单)内时,如何单击图像并将其显示在弹出窗口中
- rust - 当大小写不匹配时,如何反序列化枚举?
- python - Django - 创建旅行协作应用程序模型的方向是否正确?
- php - 在 WooCommerce 中显示/隐藏各种产品类别的付款方式
- amazon-web-services - 对于在 AWS API Gateway 上运行的中间件,HttpContext.Request 为空
- c++ - 如何从 AllSensors_DLHR 库修改 ReadSensor.ino 以利用不同的传感器
- python - 将 timedelta 转换为普通时间(Pandas Python)
- php - PHP在不规则的json文件中查找JSON节点值