ayies128事実確認とやりたいことRansackのsort_linkでは統計カラムのソートができないRailsプロジェクトにおいて検索機能を「Ransack」というgemを使って作成している場合、sort_link()というヘルパー一発でソート機能を実装できます。それは単にModelに存在しているカラムのソートが簡単に実装できるヘルパーであってSUMなどの統計後のデータに対してのソートはできません。以下のような売上データがあるとします。10このテーブルをSUMで統計して売上合計が大きい順にソートしたいです。30しかし、sort_link()ではModelに存在しているカラムしか指定できません。:price)では以下のような出力となってしまいます。:total_price)みたいなのができたらベストだと考えます。何かいい方法はないのでしょうか?ソートするヘルパーを作ってしまえ「ないのなら作ってしまおう。今後も使うことあると思うし!」と勢いで作ってみました。JSまで巻き込んでしまったのは自分でもいい判断だったのかはわからないですが、こんな感じに実装しました。Controllerorderでsortパラメーターを使ってソートします。@q.resultViewテーブルのヘッダーに今回作ったヘルパーtable_sort()を指定します。※slimを使っています。item.total_priceHelperヘッダーに表示するテキストとソートする対象の名前を引数に、href="javascript:void(0)"のlink_toを返します。order}endJavascript今回JSを使用したのは検索条件を引き継ぐためです。リンクの最後にgetパラメータを全て連ねる方法もありますがスマートじゃないと思いやめました。});});最後にベストプラクティスなのかはわかりませんが、今のところ自分では満足しています。イイね!と思ったら使ってみてください。システム開発の話から飲みに行こうって話までなんでもどうぞ。新しいECインフラサービス「lismoa」(https://lismoa.com/)の開発運営を行なっています。コメントをキャンセルメールアドレスが公開されることはありません。コメントを受け付けていません。コメントを受け付けていません。コメントを受け付けていません。