天天看點

037 簡易搜尋表單

A search form is quite different than other forms, this is because it does not deal with model's attributes. See a good way to add a simple search form in this episode.

搜尋表單跟其他表單不同,它并不對model的屬性進行操作。這節來看如何添加一個簡易的搜尋表單。

<!-- projects/index.rhtml -->

<% form_tag projects_path, :method => 'get' do %>

  <p>

    <%= text_field_tag :search, params[:search] %>

    <%= submit_tag "Search", :name => nil %>

  </p>

<% end %>

這裡用form_tag将表單資料送出到projects_path(RESTful routes生成的指向index的路由),方法get

form_tag與form_for的差別:

form_for用來與model綁定,表單中的資料是給model的屬性提供值。

而form_tag表單中的值可以使用者自定義傳送。

 projects_controller.rb

def index

  @projects = Project.search(params[:search])

end

# models/project.rb

def self.search(search)

  if search

    find(:all, :conditions => ['name LIKE ?', "%#{search}%"])

  else

    find(:all)

  end

本文轉自 fsjoy1983 51CTO部落格,原文連結:http://blog.51cto.com/fsjoy/143566,如需轉載請自行聯系原作者

繼續閱讀