查询 rails 数据库列

Querying a rails db column

我正在寻找一种类似的方法来查询数据库,但正在努力寻找我想要的方法。

我不只是在寻找答案,我也在寻找你在哪里可以找到使用的方法。我已经搜索了 postgres 数据库查询,rails 数据库查询,但没有显示出符合我想要的,甚至没有显示。

foo = "a,b,c,d"
b.bar #=> "b,d,a,f,z" Code shorten for the B Class.

B.where('bar like ?', "%#{foo}")

我知道return没什么。我想要 foo 的任何值是否包含在 b.bar 列中,然后 return 它。

如果 foo = "a",我会得到一个结果,但 foo 可以有多个值。

我正在使用 Ruby 2.2.5。 Rails 5. 数据库:PostgreSQL

如果代码更简单,将升级到 Ruby 2.3。

这是在数组中查找字段匹配项的方法:

B.where(bar: ["a", "b", "c"])

那将使用 SQL IN operator

您应该在实际查询之前做一些准备工作,首先为分隔 , 列表中的每个项目构建 like 条件,然后用逻辑 or 链接它们:

conditions = b.bar.split(',').map{|x| B.arel_table[:bar].matches("%#{x}%") }

B.where conditions.reduce(:or)