今回は検索機能を作成していきます。
準備
Gemfileに以下を追加し、bundle installを実行します。
gem 'ransack'
Routing
get 'search'
controller
検索用のアクションを追加します。
def search
@q = モデル.ransack(params[:q])
@result = @q.result
end
def index
@q = モデル.ransack(params[:q])
end
Model
def self.ransackable_attributes(auth_object = nil)
["検索したいカラム"]
end
View
<p>○○検索</p>
<%= search_form_for @q, url: search_○○_path do |f| %>
<%= f.label :○○_cont, '○○' %>
<%= f.search_field :○○ %>
<%= f.submit %>
<% end %>
<% @result.each do |変数| %>
<% end %>
条件
ソート機能
<%= sort_link(@q, :○○, "○○") %>