how to create searchbox

I am wondering how I can put a searchbox at the botom of my index
page to search through the users (by age, city ect...)

I put

Leo Kowalsky wrote:

I am wondering how I can put a searchbox at the botom of my index
page to search through the users (by age, city ect...)

I put

*************************************
<%= text_field_tag :query %>
*************************************

at the bottom of my page but how do I add a button to handle the content
of the searchbox so that I can use it as filter?

I want to recuperate the value in the searchbox and put in my users
controler like this :

***********************************************************
if(params[:filter])
  @users = User.find(:all, :conditions => "users.city =
'#{params[:filter]}'")
else
  @users = User.find(:all)
end
***********************************************************

thanks in advance !

the query field will now be in your parameters. you can address it with
params[:query]. If you are doing a search, you will want something like

if(params[:query])
   @users = User.find(:all, :conditions => ['users.city like ?',
'%'+params[:query]+'%'])
else
   @users = User.find(:all)
end

hope this helps

I did "like" since it was a search, but if you want an exact match, do
"=" and leave off the "%" on both sides of param[:query]

Leo Kowalsky wrote:

  @users = User.find(:all, :conditions => "users.city =
'#{params[:filter]}'")

The above conditions argument leaves you open to a wealth of SQL
injection attacks.

I strongly recommend leveraging the protection Rails provides by using
the array notation:

:conditions => [ 'users.city = ?', params[:filter] ]

Thanks, but how do I create a submit button next to my searchbox to
process the searchinfo?

Leo Kowalsky wrote:

Thanks, but how do I create a submit button next to my searchbox to
process the searchinfo?

Hmmm... (just hacking up a form in my tester app)

<h1>Editing address</h1>
<%= error_messages_for :address %>
<% form_for(@address) do |f| %>
  <p>
    <b>Line1</b><br />
    <%= f.text_field :line1 %><%= f.submit "Like a button here?" %>
  </p>
  <p>
    <b>Line2</b><br />
    <%= f.text_field :line2 %><%= f.submit "Or here?" %>
  </p>
  <p>
    <b>Line3</b><br />
    <%= f.text_field :line3 %><%= f.submit "Or even here?" %>
  </p>
  <p><b>Line4</b><br /><%= f.text_field :line4 %></p>
  <p><b>City</b><br /><%= f.text_field :city %></p>
  <p><b>State</b><br /><%= f.text_field :state %></p>
  <p><b>Zip</b><br /><%= f.text_field :zip %></p>
  <p><%= f.submit "The Submit at the bottom where everyone expects it?"
%></p>
<% end %>
<%= link_to 'Show', @address %> |
<%= link_to 'Back', addresses_path %>

If you don't have a model associated with it, you can use form_tag. I
have this:

<% form_tag "/store/search" do -%>

  <%= text_field_tag :search, params[:search],
    :value => session[:search] || "Search Here",
    :onfocus => 'value=""', :class => "search" %>

  <%= image_submit_tag "buttons/search.gif",
    :class => "noborder" %>

<% end -%>

Make the specified URL correspond to your controller's search action,
and use the param that you specified in the controller.

-Kyle