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に取り入れよう。