# Search issue

**URL:** <https://www.ruby-forum.com/t/search-issue/117913>\
**Category:** Rails\
**Created:** [October 22, 2007, 12:09pm UTC](https://www.ruby-forum.com/t/search-issue/117913 "2007-10-22T12:09:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![vapor](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/5e9695/32.png) [@vapor](https://www.ruby-forum.com/u/vapor)\
**Post date:** [October 22, 2007, 12:09pm UTC](https://www.ruby-forum.com/t/search-issue/117913/1 "2007-10-22T12:09:04Z")

</div>

I have a drop down list that has a value ‘any’.  
And I have this code in controller…

@results = Post.find(:all, :conditions =\> ‘status = ?’, @status)

If any is selected, it means search for all records. What do I need to  
put in variable @status to make so that it would search for all.

I can have multiple drop down lists in future with many combinations so  
I cannot if statement here.

Thanks

---

<div class="post-metadata">

**Author:** ![vapor](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/5e9695/32.png) [@vapor](https://www.ruby-forum.com/u/vapor)\
**Post date:** [October 22, 2007, 12:19pm UTC](https://www.ruby-forum.com/t/search-issue/117913/2 "2007-10-22T12:19:30Z")

</div>

On 22 Oct 2007, at 11:09, Vapor … wrote:

> I have a drop down list that has a value ‘any’.  
> And I have this code in controller…
> 
> @results = Post.find(:all, :conditions =\> ‘status = ?’, @status)

There is no such value.

> If any is selected, it means search for all records. What do I need to  
> put in variable @status to make so that it would search for all.
> 
> I can have multiple drop down lists in future with many  
> combinations so  
> I cannot if statement here.

Oh yes you can 🙂 You just need to build up your conditions  
parameter bit by bit, eg

conditions = {}  
if @status != ‘any’  
conditions[:status] = @status  
end

if @foo != ‘any’  
conditions[:foo] = @foo  
end

@results = Post.find :all, :conditions =\> conditions

You probably want to put most of this in the model.

Fred

---

<div class="post-metadata">

**Author:** ![vapor](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/5e9695/32.png) [@vapor](https://www.ruby-forum.com/u/vapor)\
**Post date:** [October 22, 2007, 12:31pm UTC](https://www.ruby-forum.com/t/search-issue/117913/3 "2007-10-22T12:31:48Z")

</div>

> conditions = {}  
> if @status != ‘any’  
> conditions[:status] = @status  
> end  
> if @foo != ‘any’  
> conditions[:foo] = @foo  
> end  
> @results = Post.find :all, :conditions =\> conditions

Thanks Fred 🙂
