Database Query on the fly Using Forms

I am a freshman when it comes to RoR, and I haven’t been able to figure
this out. I need to figure out how to query records in my database using
form check boxes (or radio buttons) then display them in that same
instance. What would this look?

I have been told that just putting a question mark after here,
:conditions => field = ?, but what would the argument look like?

Thanks in advance.

One handy way is to use named parameters in the ‘conditions’ option:
Something.find(:all, [“blah = :foo or honk = :beep or other = :foo”,
If you name your form fields “foo” and “beep”, such that params[:foo]
and params[:beep] give you the values you’re looking for, that find()
call will ‘just work’.

The documentation for ‘conditions’ is at the top of this page:


This worked well for me (after some trial and error).

Only slightly OT, how do you use these Named Variables and perform a
query? Using ‘=’ works no problem, but I receive strange results when I
something like:

:conditions => [“FirstName like :firstname%”, {:firstname => firstname}]

ActiveRecord seems to put the ‘%’ symbol outside of the quoted value,
causing a SQL error.


Thanks for the tip there Nic. Worked for me.

Like yourself, I’m curious if this is the only way, or if there is a
way’ of doing this.


I had to append the ‘%’, something like …{firstname => firstname}+’%’

The syntax isn’t correct, but you get the idea. Anybody have any
better suggestions?

  • Nic.

If you need that kind of thing, you’re perhaps better off modifying
the params before passing them to the find().
params[:firstname] += ‘%’
…which will append a % sign to the end of the value of :firstname.

find :all, :conditions => [“name LIKE ?”, “%#{params[:name]}%”]

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