我正在嘗試創建一個允許用戶搜索數據庫的應用程序。搜索頁面佈局會顯示一些下拉菜單,它們會顯示數據庫中已有數據以縮小搜索範圍,還有文本框以允許用戶輸入關鍵詞,如「項目名稱」。我遇到了一個問題,讓rails將所有已經輸入到搜索表單中的信息,並執行一個大的搜索。Ruby on Rails:搜索表單 - 多個搜索字段
這裏是我的搜索佈局的一部分:
<%= form_tag search_path, :method => 'get' do %>
<%= hidden_field_tag :direction, params[:direction] %>
<%= hidden_field_tag :sort, params[:sort] %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search Project Name", :project_name => nil %>
</p>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search Client", :client => nil %>
</p>
<% end %>
這是我的索引和搜索的項目控制器操作:
def index
@projects = Project.all
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @projects }
end
end
def search
@project_search = Project.search(params[:search]).order(sort_column + ' ' + sort_direction).paginate(:per_page => 5, :page => params[:page])
end
,這裏是我的模型/ project.rb文件的一部分
def self.search(search)
if search
where('project_name LIKE ?', "%#{search}%") || where('client LIKE ?', "%#{search}%")
else
scoped
end
end
正如您所看到的,我只是試圖在project_name或客戶端上進行搜索。如果我能做到這一點,我會將其擴展到其他領域。
當前的功能是,當我試圖在兩個框中搜索它時,它會覆蓋一個,並且只執行一次字段搜索。
我是ROR的全新品牌,所以希望有人可以提供幫助。任何建議將不勝感激。
在此先感謝!
謝謝你回到我身邊。它仍然不能解決我想要兩個文本框的問題。因此,如果他們將項目名稱放在一個框中,並將客戶端名稱放在另一個框中,則應鏈接它們並在兩個字段上進行搜索,但在搜索時只有客戶端框起作用。 – Jazz 2012-07-20 12:12:34