其中 / find_all具有多个 id 同一列的轨道



您好,我正在寻找一种干净的方法(覆盖 .where 方法??(从数据库中检索具有同一列的多个 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 user(A|B)同时指向writerreceiver的地方

我是否需要使用自定义SQL行或存在一些花哨的rails方法来执行此操作。

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

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

最新更新