Access an attribute in the find method


#1

Hello everyone :slight_smile:

I need to access an attribute directly into a find. Is that possible?

For instance:

Topics.find(:all, :conditions => expiration_date-1.hour + " < NOW( )")

Here, expiration_date would be an attribute of Topics.

Thank you !


#2

I think you’d do something like this:

Topics.find(:all, :conditions => [“expiration_date < ?”, Time.now +
1.hour])

See
http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M001891&name=findfor
more examples.

Regards,
Craig


Craig D.
Mutually Human Software
http://mutuallyhuman.com


#3

It helps, thanks!

But what if I have 2 conditions ?

For instance, is this possible?

Topics.find(:all, :conditions => [“expiration_date < ? AND attribute =”,
Time.now + 1.hours], yet_another_variable)

Thank you!


#4

Topic.find(:all, :conditions => [“expiration_date < ? AND attribute =
?”,
Time.now + 1.hour, yet_another_variable])

In other words, everything goes in the conditions array. The first
element
is the SQL fragment. Every other element is a value to be substituted
for a
? in the SQL fragment. Rails will properly quote strings and dates.

Again, see the find docs [
http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M001891&name=find]
for examples. Also, the Rails Guides [
http://guides.rubyonrails.org ] are good, and the section on query
conditions [
http://guides.rubyonrails.org/active_record_querying.html#conditions ]
has
more details.

Regards,
Craig


Craig D.
Mutually Human Software
http://mutuallyhuman.com