viewに検索ボックスを設置する方法

Railscasts - Simple Search Form

やってみた

view

submit_tag の:name => nil にしておかないと
QueryStringにcommit=Searchが付与されてしまう。

<% form_tag projects_path, :method => 'get' do %>
  <p>
    <%= text_field_tag :search, params[:search] %>
    <%= submit_tag "Search", :name => nil %>
  </p>
<% end %>
model

検索文字列が渡ってきた時だけ条件を付与する検索メソッドを用意。

def self.search(search)
  if search
    find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
  else
    find(:all)
  end
end
controller
def index
  @projects = Project.search(params[:search])
end

よく使うので

オレオレscaffoldに取り入れよう。