有 3 个表payment_logs
,在我们sourcings
的purchasings
rails 应用程序中。payment_log 属于采购或采购,但不能同时属于两者。采购和采购都有一个col project_id
。我们要提取all payment_logs with its project_id = project_id_search
(从搜索页面传递的 project_id_search)。我们还需要一个 ActiveRecord 作为返回的结果集。这是单个查询,假设 payment_logs 保存 ActiveRecord 结果集:
使用其采购的 project_id = project_id_search 选择所有 payment_logs
payment_logs = payment_logs.joins(:sourcing).where("sourcing.project_id = ?", project_id_search)
使用其购买的 project_id = project_id_search 选择所有 payment_logs
payment_logs = payment_logs.(:purchasing).where("purchasings.project_id = ?", project_id_search)
我们需要联合 1 和 2 以获取所有 project_id = project_id_search 的 payment_logs。实现它的正确方法是什么?我们没有在 rails 中找到 union 并且 find_by_sql 返回了一个不是我们想要的数组。谢谢。