0

当我将此 SQL 移动到不同的数据库适配器时,我遇到了问题。我想把它转换成更灵活的东西。这里是:

Foo.includes([{ :group => :memberships }, :phone]).
     where('("memberships"."user_id" = ? AND "memberships"."owner" = ?) 
           OR "phone"."user_id" = ?', user.id, true, user.id)

user是当前用户(此查询位于 CanCan 能力文件中)。这个想法是查询当前用户是 foo 组的所有者的所有 foo,或者 foo 的电话由当前用户拥有。

我尝试了许多不同的查询,但看不到正确的 OR 语法。因为这是 CanCan 能力,所以不可能合并两个查询,都需要像上面那样在一个大范围内。这可能吗?

组成员身份是通过连接表完成的memberships,所有者由该owner字段指定。

class Foo
  belongs_to :group
  belongs_to :phone
end
4

0 回答 0