# How to use Find with conditions?

**URL:** <https://www.ruby-forum.com/t/how-to-use-find-with-conditions/171964>\
**Category:** Rails\
**Created:** [July 12, 2009, 1:37pm UTC](https://www.ruby-forum.com/t/how-to-use-find-with-conditions/171964 "2009-07-12T13:37:59Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![railslist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/65b543/32.png) [@railslist](https://www.ruby-forum.com/u/railslist)\
**Post date:** [July 12, 2009, 1:37pm UTC](https://www.ruby-forum.com/t/how-to-use-find-with-conditions/171964/1 "2009-07-12T13:37:59Z")

</div>

Recently I read that the following find

## Type 1

Post.find(:first, :conditions =\> [‘status = ? and active = ?’, 1, 1])

can be written as

## Type 2

Post.find(:first, :conditions =\> { :status =\> 1, :active =\> 1 })

But how do I include LIKE operator in Type 2 find?

thanks

---

<div class="post-metadata">

**Author:** ![railslist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/65b543/32.png) [@railslist](https://www.ruby-forum.com/u/railslist)\
**Post date:** [July 12, 2009, 1:46pm UTC](https://www.ruby-forum.com/t/how-to-use-find-with-conditions/171964/2 "2009-07-12T13:46:13Z")

</div>

I never used but

this may work Post.find(:first,:conditions[ ‘status like ? and active  
like  
?’, 1, 1])

On Sun, Jul 12, 2009 at 5:07 PM, Rails L. \<

---

<div class="post-metadata">

**Author:** ![railslist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/65b543/32.png) [@railslist](https://www.ruby-forum.com/u/railslist)\
**Post date:** [July 12, 2009, 1:46pm UTC](https://www.ruby-forum.com/t/how-to-use-find-with-conditions/171964/3 "2009-07-12T13:46:49Z")

</div>

sorry , conditions should be hash

Post.find(:first,:conditions=\>[ ‘status like ? and active like ?’, 1,  
1])

On Sun, Jul 12, 2009 at 5:14 PM, Narendra sisodiya  
\<removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![railslist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/65b543/32.png) [@railslist](https://www.ruby-forum.com/u/railslist)\
**Post date:** [July 12, 2009, 2:39pm UTC](https://www.ruby-forum.com/t/how-to-use-find-with-conditions/171964/4 "2009-07-12T14:39:58Z")

</div>

2009/7/12 Rails L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> * * *
> 
> Post.find(:first, :conditions =\> { :status =\> 1, :active =\> 1 })
> 
> But how do I include LIKE operator in Type 2 find?

I believe that you cannot use LIKE in the Type 2 find.

Colin

---

<div class="post-metadata">

**Author:** ![railslist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/65b543/32.png) [@railslist](https://www.ruby-forum.com/u/railslist)\
**Post date:** [July 12, 2009, 5:53pm UTC](https://www.ruby-forum.com/t/how-to-use-find-with-conditions/171964/5 "2009-07-12T17:53:21Z")

</div>

I like the type 2. But your example is a better candidate for named  
scope.  
like defining named scope ‘active’ and using like,  
Post.active

On Jul 12, 5:37 pm, Rails L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
