現在 Ruby on Rails でform_withを使用しセレクトボックスを作成しています。
セレクトボックスで選択した項目を画面推移した後に保持したいです。
view
<%= form_with url: root_path, method: :get, local: true do |f| %> <%= f.select "sort", options_for_select({作成日時順: "create", 終了期限順: "deadline"}), include_blank: "選択する", selected: params[:sort] %> <%= f.submit "並べ替え" %> <% end %> <% @tasks.each do |task| %> <p><%= link_to task.title, task_path(task) %></p> <% end %>
controller
class TasksController < ApplicationController def index if params[:sort] == "create" @tasks = Task.all.order(created_at: :DESC) elsif params[:sort] == "deadline" @tasks = Task.all.order(deadline: :ASC) else @tasks = Task.all end end
やってみたこと
・<%= f.select "sort", options_for_select({作成日時順: "create", 終了期限順: "deadline"}), include_blank: "選択する", value: params[:sort] %> valueで実行
現在のコードだと、並べ替えは問題なく行えるのですがselectで選択した「作成日時順」「終了期限順」が保持されず、「選択する」が画面推移後に表示されてしまいます。
ご教授頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/06 09:35