查询 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)
我正在寻找一种类似的方法来查询数据库
我不只是在寻找答案,我也在寻找你在哪里可以找到使用的方法。我已经搜索了 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)