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]

On Fri, Jul 18, 2008 at 6:57 AM, Tim C. <

On Jul 18, 2008, at 10:08 AM, Brian H. wrote:

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

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

Rob B. http://agileconsultingllc.com
[email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs