Rails Active Record以。开头

时间:2013-05-31 21:51:50

标签: ruby-on-rails ruby activerecord

我有一个名为letters的变量,在这个例子中等于以下内容:

["a", "e"]

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

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