Ruby Gem使用like 關鍵字搜尋
Ransack是使用 like 去做sql查詢動作
使用Gemfile安裝gem 'ransack'
Controller使用方式:q是官方所使用的另外還可以使用@q.result(distinct: true)
@q = Person.ransack(params[:q])
@people = @q.result.includes(:articles).page(params[:page])
<%= search_form_for @q, :url => person_path(@people) do |f| %>
<p><%= f.search_field :name_cont, :placeholder => "姓名", :class => "form-control" %></p>
<p><%= f.search_field :email_cont, :placeholder => "E-mail", :class => "form-control" %></p>
<% end %>
注意的是search_form_for以及search_field都是官方指定的輸入形式,name_cont代表搜尋要包含姓名的關鍵字。完成。
由於ransack會使用sql like語法搜尋,而且他會逐筆檢查資料是否符合,是不會使用資料庫的索引結構,小數據方面還行。
但大數據就要多多考慮了,畢竟搜尋時效能會佔很大。