如何链接或来自Arel Array

时间:2015-11-30 10:21:10

标签: sql ruby-on-rails activerecord arel

我看了https://stackoverflow.com/a/13754977/1979953

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| ??? }

1 个答案:

答案 0 :(得分:2)

使用reduce

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

在你的情况下,它可以只是:

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

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