ActiveRecord: SQL IN operator

I want to use an array in the :conditions of an ActiveRecord Find so that a SQL IN statement is created. However, I also want to specify a greater than condition on a timestamp column too. From the Docs: An array may be used in the hash to use the SQL IN operator:   Student.find(:all, :conditions => { :grade => [9,11,12] })

How do I modify this so that it also contains the timestamp condition? :condition => ['created_at > ?',time]

Hey…

I’ve been doing Rails for a while and have never adopted the hash syntax for conditions. Someone else might be able to help you with that, but I know this will work:

Student.find :all, :conditions = >[“grade in (?) and created_at > ?”, [9,11,12], time]

Hey…

I’ve been doing Rails for a while and have never adopted the hash syntax for conditions. Someone else might be able to help you with that, but I know this will work:

Student.find :all, :conditions = >[“grade in (?) and created_at > ?”, [9,11,12], time]

Yes, that’s it. If you like the Hash form for conditions, you might like DataMapper where the same query would look like:

Student.all(:grade => [9,11,12], :created_at.gt => time)

http://datamapper.org/

-Rob