这有效:
ids = [1,2]
varietals = Varietal.find(:all, :conditions => [ "id IN (?)",ids])
但我想做的是加上条件为:deleted =>假
varietals = Varietal.find(:all, :conditions =>{ :deleted => false})
任何想法?
我将不得不使用find_by_sql?
答案 0 :(得分:5)
我会用named_scope处理这个问题,以传达意图并促进重复使用:
named_scope :undeleted,
:conditions => { :deleted => false }
然后你可以简单地使用:
varietals = Varietal.undeleted.find([1,2])
答案 1 :(得分:3)
你可以通过几种方式实现,但这是最直接的方式:
varietals = Varietal.find( [1,2], :conditions => { :deleted => false })
您可see in the docs find
的第一个参数可以取整数或数组。
答案 2 :(得分:2)
ids = [1,2]
varietals = Varietal.find(:all, :conditions => {:id => ids, :deleted => false})
这应该有效,但尚未测试过。
来自docs:
可以在哈希中使用数组 使用SQL IN运算符:
Student.find(:all, :conditions => { :grade => [9,11,12] })