質問: ransackを使って検索機能を実装しています。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/efa37165b902a44e9341e9ea3f9f9801.png) indexビューに、search_field(検索用のテキストエリア)をつけて、検索結果を、明細部に表示しています。明細部には右端に編集ボタンを配置し、レコード単位で編集ができるようにしています。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/600864739f68b64d10c76829e9b3572e.png) 編集ボタンをクリックして、編集画面を表示して、更新した後、再びindexビューにrenderされるのですが、当然、画面遷移すると、search_field(検索用のテキストエリア)で入力した値はクリアされます。(下図の通り作業完成日はクリアされます) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/abb737f0ac28cad1ca09e614b8cf3a26.png) 編集画面から、renderされても、search_fieldがクリアされないようにしたいのですが、そんな事は実現可能でしょうか。できるようでしたら、ヒントを頂ければ幸いです。
回答: なんらかの手段で検索パラメータを永続化しておくという話だと思うのですが、一つの手段としてはURLでパラメータを永続化する、というのが考えられそうです。 URLの場合は編集画面へのリンクをシリアライズするなどしてURLのパラメータに付与し、編集画面からPOSTした際にrenderでパラメータを使ってフォームに埋め込む、もしくはパラメータを付与したままredirectしてredirect先でrenderにパラメータを渡してフォームに埋め込む、などが考えられそうです。 シンプルな例だと `/edit/1?from=2020_07_01&to=2020_07_13` のようなURLからPOSTする印象です。