前回までに作成したプログラムで、ソートやページ遷移がらみで問題があるので
それを解決します。
現状、以下の2つ操作をすると、Webアプリとして残念な動きになっています。
・ページ変更後の列名ソート
・検索後の列名ソート
・画面遷移時
ページング後にソートをしたときのページ情報維持
ページングをした後にソートをすると、pageパラメータがなくなるため
1ページ目を表示してからソートをするようになっています。
1 2 |
#ページング後のソート前 Parameters: {"direction"=>"asc", "page"=>"2", "sort"=>"address"} |
1 2 |
#ページング後のソート後 Parameters: {"direction"=>"asc", "sort"=>"name"} |
色々調べました。「rails session 維持」などなど…
結論、セッションは全く関係ありませんでした。
ログとかを調べているうちに、Parametersってどこで指定しているのかと思い
ふとapplication_helper.rbを見ていると、ここにありました!
1 2 3 4 |
/app/helpers/application_helper.rb ・・・ link_to title, {:sort => column, :direction => direction} ・・・ |
これを
1 2 3 4 |
/app/helpers/application_helper.rb ・・・ link_to title, {:sort => column, :direction => direction, :page => params[:page]} ・・・ |
こうしてやることで
1 |
Parameters: {"direction"=>"asc", "page"=>"2", "sort"=>"sex_type_id"} |
できました。
ここに、検索用のパラメータも指定してやると、検索条件を維持したままソートもできます。
1 2 3 4 |
/app/helpers/application_helper.rb ・・・ link_to title, {:sort => column, :direction => direction, :page => params[:page], :q => params[:q]} ・・・ |
これで問題の1つ目と2つ目が解決です。
3つ目は次回にて。
追記
前記事表の列名をクリックするとソートする機能の追記のやり方でやれば
こんな実装いらないみたいです。。。
The following two tabs change content below.

根本 大幹
社会人2年目。
今までブログ書いたことありません!
勉強は明日からがんばる。

最新記事 by 根本 大幹 (全て見る)
- unite.vimを使ってみた - 2014年2月13日
- Rails3 バリデーション - 2014年2月7日
- Rails3 CSV出力をしてみる - 2014年2月7日