Ruby on rails Rails where/find_都具有多个id,并且都是同一列

Ruby on rails Rails where/find_都具有多个id,并且都是同一列,ruby-on-rails,database,model,Ruby On Rails,Database,Model,您好,我正在寻找一种干净的方法(overide.where方法??)从DB中检索具有相同列的多个ID的多行 例如: # Actual ugly mode args = {} args[:channel] = common_channel args[:writer] = userA args[:receiver] = userB journalsA = Journal.where args args[:writer] = userB args[:receiver] = userA journa

您好,我正在寻找一种干净的方法(overide.where方法??)从DB中检索具有相同列的多个ID的多行

例如:

# Actual ugly mode
args = {}
args[:channel] = common_channel

args[:writer] = userA
args[:receiver] = userB
journalsA = Journal.where args

args[:writer] = userB
args[:receiver] = userA
journalsB = Journal.where args
# @journals = journalsA + journalsB
我如何制作这样的东西:
Journals.where userA:userA,userB:userB,channel:x
where
user(A | B)
同时指向
writer
receiver


我是否需要使用自定义SQL行或存在一些奇特的rails方法来实现这一点。

我想你可以把你的问题想象成:你能在rails中编写一个或查询吗?答案是肯定的,但对于SQL片段:

Journal.where(channel: common_channel).where('(writer = ? AND receiver = ?) OR (writer = ? AND receiver = ?)', userA, userB, userB, userA)