使い方

参考:

Ransack でテーブルのソート機能を追加する | もた日記

Ransack のフォームで並び替え (sort) & enum_help を使って選択項目を日本語化 | Shikabane

Ransack’s sort_link helper creates table headers that are sortable links – activerecord-hackery/ransack at v2.0.0 – GitHub

Sorting in the Controller · activerecord-hackery/ransack Wiki – GitHub

sort_link

ソート順を変更するリンクを生成する。

<%= sort_link(
      @q, :date, "日付",
      { default_order: :desc },
      { class: "sort_link" }
    ) %>

参考:

Ransack のデフォルトオーダーを変える方法 | なんとなく日々徒然と

Method: Ransack::Helpers::FormHelper#sort_link — Documentation for ransack | RubyDoc.info

sort_link – ransack/form_helper.rb at v2.1.1 · activerecord-hackery/ransack – GitHub

sorts

参考:

Ransack の sort_link でデフォルトの第2ソートを指定する方法 – Qiita

Method: Ransack::Search#sorts — Documentation for ransack | RubyDoc.info

Method: Ransack::Search#sorts= — Documentation for ransack | RubyDoc.info

sorts= – ransack/search.rb at v2.1.1 · activerecord-hackery/ransack – GitHub

params

params[:q][:s]

参考:

超簡単に検索機能が作れる gem – Ransack | 上澄み 20%

デフォルトのソート順

参考:

ransack でデフォルトのソート順を指定する方法 | 自転車で通勤しましょ♪ブログ

Ransack の sort_link でデフォルトの第2ソートを指定する方法 – Qiita

Default Sort – Stack Overflow

How to set defaults for ransack sorting? – Stack Overflow

統計データのソート

参考:

sort_link が使えない統計カラムなどをソートするヘルパーを作ってみた – Qiita

Sort

参考:

Class: Ransack::Nodes::Sort — Documentation for ransack | RubyDoc.info

ransack/sort.rb at v2.0.0 · activerecord-hackery/ransack – GitHub

SortLink

参考:

Class: Ransack::Helpers::FormHelper::SortLink — Documentation for ransack | RubyDoc.info

SortLink – ransack/form_helper.rb at v2.0.0 · activerecord-hackery/ransack – GitHub

unable to convert unpermitted parameters エラー

Rails 6 で sort_link を使うとストロングパラメーターをハッシュに変換する際にエラーが発生する。

対処法

lib/ransack/helpers/form_helper.rb で Rails のバージョン番号の判定を修正する。

def parameters_hash(params)
  if ::ActiveRecord::VERSION::MAJOR >= 5 && params.respond_to?(:to_unsafe_h)
    params.to_unsafe_h
  else
...

参考:

Support Rails 6 in #sort_link helper by sandrew · Pull Request #1001 · activerecord-hackery/ransack – GitHub

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA