Sortable Table Columns

テーブルソートは自前でも割と簡単に実装できますが
Railscasts - Sortable Table Columns で
きれいなお手本が紹介されています。



若干異なりますが、つい先日ここでも似たような方法で実装したところです。
The Ruby Toolbox Search projects list

実装方法

sort項目と、desc/asc sort順をそれぞれ
link_toのオプションに渡すという方法です。


下記のように、SQLインジェクション対策がされています。
まぁ、通常対策済みでしょうが
Product.order のように値を直接渡す場合は必須ですね。

  def sort_column
    Product.column_names.include?(params[:sort]) ? params[:sort] : "name"
  end
  
  def sort_direction
    %w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
  end

補足

The Ruby Toolbox Search ActiveRecord Sortables
この辺りのプラグインを試してみたいところ。