【发布时间】:2017-04-06 03:23:26
【问题描述】:
我有两个查询,我需要它们之间的or,即我想要第一个或第二个查询返回的结果。
第一个查询是一个简单的where(),它会获取所有可用的项目。
@items = @items.where(available: true)
第二个包括join(),并给出当前用户的物品。
@items =
@items
.joins(:orders)
.where(orders: { user_id: current_user.id})
我尝试将这些与 Rails 的 or() 方法以各种形式结合起来,包括:
@items =
@items
.joins(:orders)
.where(orders: { user_id: current_user.id})
.or(
@items
.joins(:orders)
.where(available: true)
)
但我一直遇到这个错误,我不知道如何解决它。
Relation passed to #or must be structurally compatible. Incompatible values: [:references]
【问题讨论】:
标签: sql ruby-on-rails postgresql activerecord ruby-on-rails-5