Ruby on Railsで検索機能を作る際に便利なRansackというgemがあります。複数の条件で検索する画面を作るときにとても役に立つライブラリなのですが、特殊な検索条件を指定しようとすると標準の機能では対応できないことがあります。 ransackerを使って検索機能を拡張することで、解決できる場合があります。 Ransackで指定できない条件の例 カラム同士の比較 注文テーブルに「納品予定日」と「納品日」というカラムがあって、納品日が納品予定日より後の日付になっているもの(納期遅れ)を抽出したい。 イコールや範囲指定で表せない条件 年と月は指定せず、日の部分が1日のものを抽出したい。とか、金額が1,000の倍数になっているものを抽出したい。 ransackerでできること ransackerは、検索の対象となる項目を定義することができるメソッドです。SQL文のWHERER句に記述す