0

我有一个名为的变量letters,在这种情况下等于以下内容:

["a", "e"]

基本上,如何在我Item的模型上执行活动记录查询以查找所有以 A、B、C、D 和 E 开头的项目?

4

2 回答 2

2

按照这个链接: http: //programming-tut.blogspot.ca/2009/10/ruby-on-rails-loop-alphabet-to-z.html

你可以这样做:

range = [ 'A', 'E' ]
conditions = (range.first..range.last).to_a.map{ |letter| " name ILIKE '#{letter}%' " }.join('OR')
Item.where(conditions)

或者像 Vimsha 指出的那样:

letters = ('A'..'E').to_a
Item.where("substr(name, 1, 1) IN (?)", letters)
于 2013-05-31T23:05:07.907 回答
1

Item.where("substr(name, 1, 1) in ('A', 'B', 'C', 'D', 'E')")

于 2013-05-31T22:18:20.617 回答