【问题标题】:Rails where / find_all with multiple id same columnRails where / find_all 具有多个 id 相同的列
【发布时间】:2017-04-10 15:55:42
【问题描述】:

您好,我正在寻找一种干净的方法(覆盖 .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 方式来执行此操作。

【问题讨论】:

    标签: ruby-on-rails database model


    【解决方案1】:

    我想你可以把你的问题想成:你能在 Rails 中写一个 OR 查询吗?答案是肯定的,但是带有 SQL 片段:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多