###Firstボタンクリック時のparams[:page]の値を1に設定するには?
Railsでペジネーションのためにkminariを導入して,ペジネーション自体はうまく出来たのですが,次のような事態になり困っています.
ペジネーションにより分割表示された項目一覧にある個別の項目の詳細情報を参照(または編集)して元の項目一覧に戻ってくると,詳細情報を参照した項目が含まれているページではなく,1ページ目が表示されてしまいます.これをなんとかして,ページ位置を記憶して,元のページに戻るようにするためのコードを書き,とりあえず元のページの戻るように出来ました.しかし,今度は「First」ボタンで1ページ目に移動できなくなり,困っています.
ページを記憶して,なおかつ「First」ボタンを機能させるにはどうしたら良いでしょうか?
作成したコードは次のようなものです.
###ソースコード
indexコントローラのコード
ruby
1def index 2 if !params[:page] 3 @articles = Article.page(session[:page]) 4 else 5 @articles = Article.page(params[:page]) 6 end 7 8 if params[:page] 9 session[:page] = Articles.current_page 10 end 11end
このコードで,当初の自分の目的は果たせました.しかし,「First」ボタンをクリックしても1ページ目に移動せず現在のページから動かないのです.
###「First」ボタンが機能しなくなった原因
自分が書いたコードにより「First」ボタンが機能しなくなった原因はとりあえず分かりました.それは「First」ボタンクリック時にparams[:page]の値が1ではなく,どうやらnilになっているようなのです.Flashを使って確認しました.そのため,上記のコードのif文の中の最初のブロックが実行されてしまうためです.「Last」ボタンの場合はちゃんとparams[:page]には最後のページのページ番号が入っています.
「First」ボタンを機能させつつ,ページを記憶させるという私の要求を満たすためには,「First」ボタンクリック時にparams[:page]の値が1になるようにするのが一番簡単だと思うのですが,これは設定で変えられるものなのでしょうか?それともこれは仕様でどうしようもないのでしょうか?もし仕様でどうしようもないのでしたら,この仕様のもとでページ位置を記憶してそのページに戻るという,いい案はないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/08 09:19