Railsで使えるGem

Railsのテーブル並び替えを実装する

投稿日:

 

 

環境 RailsにTwitter Bootstrapを設定する~twitter-bootstrap-rails

参考 #147 Sortable Lists (revised) @Railscasts

 

並び替えは次のメソッドで実行する

昇順がasc、降順がdesc

やること

  • テーブルのカラム名をクリックすると上矢印が現れて昇順に並び替える
  • もう一度同じカラム名をクリックすると下矢印に変わって降順に並び替える
  • 違うカラム名をクリックすると上矢印が現れて昇順に並び替える、前の矢印は消える

仕組み

  1. リンクを作成して:sortにカラム名を投げてindexを呼びなおす
  2. その際、もし前と同じカラム名なら方向をトグルする(ascならdesc、descならasc)
  3. もし前と違うカラム名なら方向はascにする
  4. モデル名.order(カラム名+’ ‘+昇順・降順)で指定した順序でデータを呼び出す
  5. カラム名がついているテーブルヘッドの値の後ろに昇順なら上矢印・降順なら下矢印をつける

コーディング

View

<th>のうちソートをしたいタイトルにリンクを作成して:sortにカラム名を投げてindexを呼びなおす

model_class.human_attribute_name はtwitter-bootstrap-railsがgenerateしたもの 普通に:nameでもOK

ソートさせたいカラムの分だけ作成する

Controller

View

ブートストラップで上矢印アイコンは次のとおり

選択されたカラム名(@sort)の後ろに、指定された方向(@direction)にしたがって矢印アイコンを出す

 

テスト作成とHelper化のリファクタリングは後日

-Railsで使えるGem
-,

執筆者:

関連記事

Hallo.jsのMarkdownをWYSIWYGで編集できるサンプルがぐう便利だったのでRails3.2とBackbone.jsでやってみた

hallojs.org/demo/markdown/ これ  とにかく一度さわってみて欲しいんですけど 目次1 サンプルの便利ポイント2 Rails3.2とBackboneで動かしてみる サンプルの便 …

Rails4.2で簡単にマテリアルデザインを使えるmatelializeを試してみた〜matelialize

By: Basheer Tome – CC BY 2.0 目次1 マテリアルデザイン2 matelialize3 Gemfile4 application.scss5 applicatio …

no image

Mongoidのandとorで悩み中

and

or

  orの方はハッシュで[crayon-58 …

簡単にグラフが作成できるC3.jsをRailsでつかってみた

By: Nguyen Hung Vu – CC BY 2.0 目次1 C3.js2 gon3 複数の時系列データで一方にはある時点のデータがあるけど他方にはある時点のデータがないみたいな場 …

no image

Ruby on Rails 3.2でファイルアップロード〜CarrierWave & RMagick

    CarrierWaveはRubyでファイルのアップロードを簡便にするGemです。 RMagickはImageMagickという画像ファイルを加工するソフトのラッパーです。C …