如何链接或从 Arel Array

How to chain or from Arel Array

我读了。

user = User.arel_table

u1 = user[:id].eq(1)
u2 = user[:id].eq(2)
u3 = user[:id].eq(3)

result = User.where(u1.or(u2).or(u3))

还可以。

如何像上面那样链接?使用 eachmap

user = User.arel_table

foo = [
  user[:id].eq(1),
  user[:id].eq(2),
  user[:id].eq(3)
]

result = foo.map{|o| ??? }

使用reduce:

conditions = foo.reduce(:or)
User.where(conditions)

你的情况可以是:

User.where(id: [1, 2, 3])

上面的代码构造了 where id in (1, 2, 3) 查询。