問題一覧に戻る
上級ファイル処理と検索
問題57: 検索機能 - Ransack gem

Rails用の強力な検索フォームビルダーであるRansackを使用して高度な検索機能を実装する方法を学習します。Ransackは複雑なSQLを書かずに、関連付けやカスタム述語をサポートしながら、複雑なクエリでデータを検索・ソートするシンプルな方法を提供します。

# Controller
def index
# 検索オブジェクトを作成
@q = Product.(params[:q])
@products = @q.result
end

# View
# 検索フォームを構築
<%= @q do |f| %>
# 名前を含む検索
<%= f.label :name %>
<%= f.search_field :name %>

<%= f.submit %>
<% end %>

# ソート可能なカラムリンクを追加
<%= sort_link(@q, :, "Price") %>