Ruby on rails 具有关联和多个条件的Rails where子句

Ruby on rails 具有关联和多个条件的Rails where子句,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,因此,我有以下select语句: requests = Request.select { |x| (x.name_rel == user || x.customer_rel == user || x.users.include?(user)) 基本上,我正在尝试为单个用户获取所有请求,其中请求具有以下关系: belongs_to :name_rel, :class_name => "User", :foreign_key => 'name_id' belongs_to :c

因此,我有以下
select
语句:

requests = Request.select { |x| (x.name_rel == user || x.customer_rel == user || x.users.include?(user))
基本上,我正在尝试为单个
用户
获取所有
请求
,其中
请求
具有以下关系:

  belongs_to :name_rel, :class_name => "User", :foreign_key => 'name_id'
  belongs_to :customer_rel, :class_name => "User", :foreign_key => 'customer_id'
  has_and_belongs_to_many :users

我知道
select
是一种非常糟糕的方法,但我不确定如何让
在哪里
进行如此复杂的操作。有人能给我指出正确的方向吗?

您可以在如下条件下执行此操作

»  Request.where("name_id = ? OR customer_id =? OR (name_id IN (?) && customer_id IN (?))", user, user, [ids], [ids])

您可以在如下条件下执行此操作

»  Request.where("name_id = ? OR customer_id =? OR (name_id IN (?) && customer_id IN (?))", user, user, [ids], [ids])

谢谢你的帮助!谢谢你的帮助!