微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多个连接轨道混乱

如何解决多个连接轨道混乱

我有以下

**User** model
has_many orders class_name: "Order",foreign_key: "buyer_id"


**Order** model
has_many :items,class_name: "OrderItem"


**OrderItem** model
belongs_to :orderable,-> { with_deleted },polymorphic: true

因此,用户具有许多 Orders ,每个 Order 包含许多 OrderItems ,并且它们具有“ orderable_id “与product_id

有关

我正在尝试返回未购买特定商品的用户用户ID列表

目前,我有

User.joins(:orders => :items).where("orders.status = 'success'").where("order_items.orderable_id != ?",product_id).pluck(:id)

不幸的是,它的深度不够。

如果其中包含有问题的product_id的OrderItem已成功丢弃,但是如果任何OrderItems中包含有问题的product_id的我都需要完全丢弃用户

就在我头上

解决方法

您可以尝试以下操作:

user_who_purchased_ids = User.joins(orders: :items).where("orders.status = 'success'").where("order_items.orderable_id = ?",product_id).pluck(&:id)
users_who_did_not_purchase = User.where('id not in ?',user_who_purchased_ids)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。