1. ホーム
  2. ruby-on-rails

[解決済み] Ruby On Railsで前のページにリダイレクトする方法は?

2022-04-19 01:45:45

質問

ソート可能なヘッダーとページネーションがある、全プロジェクトを一覧表示するページがあります。

path:
/projects?order=asc&page=3&sort=code

プロジェクトの1つを編集することを選択します。

path:
projects/436/edit

そのページで保存をクリックすると、projectsコントローラ/updateメソッドが呼び出されます。 コードを更新した後、特定のプロジェクトの編集をクリックする前にいたパスにリダイレクトさせたいのです。言い換えれば、同じページで同じソートを行いたいのです。

link_to(:back)を見て、redirect_to(:back)で:backが効くかもと思ったのですが、ダメでしたね。

puts YAML::dump(:back) 
yields the following:
:back 

これを動作させる方法について何かアイデアがあれば教えてください。簡単に解決できる問題のように思えますが、私はRoRの初心者なのです。

解決方法は?

編集アクションで、要求しているURLをセッションハッシュに保存して、複数のリクエストにまたがって利用できるようにします。

session[:return_to] ||= request.referer

そして、保存に成功した後、更新アクションでそのファイルにリダイレクトします。

redirect_to session.delete(:return_to)