<p>Let's assume I have a model called "product."  Let's assume that product has three fields.  These fields are 'name' (type string), 'cost' (type integer), and 'is_visible' (type bool).</p>

<p>1) How can I do a search query using the Rails "find" method (if there is another method, that's fine) so that I can search for all products with a cost greater than 100 AND is_visible is true?</p>

<p>2) What if we wanted to change this to search to where name != '' OR cost == 0?</p>

<p>This isn't a problem to do an SQL, but I would like to think that Rails has a way to do AND/OR queries to the database without using SQL.</p>

<p>Thanks!</p>

You would need to use the conditions option on the find method.  The conditions option can be either a Hash, Array, or String.  There are lots of options for conditions, so I recommend reading the
API help
for it.
For example if you want to (1):
```
```
Product.find(:all, :conditions => ['cost > ? and is_visible is true', 100])
```
```
Or (2)
```
```
Product.find(:all, :conditions => ["name != '' or cost =0])
```
```