ransackのinをカンマ区切りでする
やりたいこと
ransack を利用して、 in
の検索をカンマ区切りで指定できるようにする。
手順
Controller
class HogeController < ApplicationController ... def index @q = Hoge.ransack(ransack_queries) @hoges = @q.result.page(params[:page]) end ... def ransack_queries queries = params[:q] if queries.present? && queries[:id_in].present? # ページネーション等で2回目のアクセスが来た場合には既にarrayになっているので return。 return queries if queries[:id_in].is_a?(Array) queries[:id_in] = queries[:id_in].split(',').map(&:strip) end queries end ...
View
= search_form_for(@q) do |f| ... = f.search_field(:id_in, class: 'form-control', value: params[:q].try(:fetch, :id_in, nil).try(:join, ','))
参考
関連する書籍
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/17
- メディア: 単行本
- この商品を含むブログを見る