rails:使用includes、where和or进行数据库查询

0aydgbwb  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(267)

在我的rails应用程序中,来自 Activity 可能与用例或掩码有关系。当这些关系中至少有一个丢失时,记录应该显示在视图上。我创建了以下查询,但尝试将它们与or连接失败,从而获得了一个“传递给#or的关系必须在结构上兼容”。不兼容的值:[:includes]“错误。以下是我试图与或连接的查询:

Activity.includes(:activities_usecases).where(:project_id => current_user.project_id, :activities_usecases => { :activity_id => nil })
Activity.includes(:activities_masks).where(:project_id => current_user.project_id, :activities_masks => { :activity_id => nil })

需要如何使用.or()使其工作?我不希望丢失连接的记录显示两次,当两个连接都丢失时,只显示一次。

jchrr9hc

jchrr9hc1#

稍后添加include或将它们同时添加到这两者中。

Activity.where(:activities_usecases => { :activity_id => nil }).or(
  Activity.where(:activities_masks => { :activity_id => nil })
).includes(:activities_usecases, :activities_masks).where(:project_id => current_user.project_id)

相关问题