ピスタチオを食べながらrailsを楽しむ

ピスタチオ大好きな著者のrailsを使ったツール作成の日記です。

ransackで[:q]を違う文字列にする

同一ページ内に複数のテーブルを表示、それぞれの検索フォームが必要となったため調べた。

# app/controllers/tasks_controller.rb
def index
  @search = Task.search(params[:q])
  @different_search = Different.search(params[:different], search_key: :different)
  @tasks = @search.result
  @differents = @different_search.result
end
# app/views/tasks/index.html.erb
<%= search_form_for @search do |f| %>
<% end %>
<%= search_form_for @different_search, as: :different, do |f| %>
<% end %>

これでそれぞれ個別に動く。以下参考 。

Configuration · activerecord-hackery/ransack Wiki · GitHub