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
-,

執筆者:

関連記事

backbone-relationalをJasmineでテストしてみた

no image

TwitterBootstrapRailsでエラーが出る件

    undefined method `less’・・・的なエラーが出た. とりあえず下のgemを足したら動いた.そのうち修正されるとおもう. [crayon-5c …

no image

Rails3.2でajaxなフォルダツリーを導入する4~dynatree-rails & Drag’n’Drop

wwwendt.de/tech/dynatree/doc/dynatree-doc.html wwwendt.de/tech/dynatree/doc/samples.html 今日はドラッグアンドド …

Rubyでdocxをいろいろ分析してみた

  目次1 解凍~minizip2 ファイルを開く~File.open3 全ファイルを解凍せずにzip内の必要なファイルだけを開く~zipruby4 置換~gsub5 xmlの操作~noko …

WindowsのRubyでxlsxファイルにアクセスする~roo

By: Hajime NAKANO – CC BY 2.0 目次1 rooのインストール2 rooを使ってみる(基本)3 シートを指定する4 セルの値を確認する5 行列を数える rooのイ …