質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2059閲覧

kaminariで「First」ボタンクリック時のparams[:page]の値について

sjordit

総合スコア10

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1グッド

0クリップ

投稿2016/08/23 08:59

###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になるようにするのが一番簡単だと思うのですが,これは設定で変えられるものなのでしょうか?それともこれは仕様でどうしようもないのでしょうか?もし仕様でどうしようもないのでしたら,この仕様のもとでページ位置を記憶してそのページに戻るという,いい案はないでしょうか?

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

とりあえず、編集して元のページに戻すという事であれば以下でどうですかね?

def edit session[:referer_url] = request.referer end def update model.save redirect_to session[:referer_url], :notice => "更新しました。" end end

色々いじらない分、応用性高いですし。

投稿2016/09/02 04:43

kunio99

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sjordit

2016/09/08 09:19

ありがとうございます.うまくいきました.sessionを使ったり,kamaninariの設定を変えたりするより,ずっといいですね.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問