いわゆるwizard形式のフォームを作成しています。
作りは簡単なものですが、パラメーターとして受け取ったものをsession変数に格納する。
戻るボタンを押したら、session変数に格納されている値を編集できるようformに表示するというものです。
しかし、実装しているのですがformに上手く値を表示できません。
現状つくりとしては以下のようになっております。
class StepsController < ApplicationController def first @account = Account.new end def second session[:name] = params[:name] @account = Account.new end . . . end
#first.html.erb <%= form_with(model: @performer, url: second_steps_path, method: :get, local: true) do |form| %> <%= form.label "名前" %> <%= form.text_field :name, value:"#{session[:name]}" %> <%= form.submit "次へ" %> <% end %>
#second.html.erb <%= form_with(model: @performer, url: third_steps_path,method: :get, local: true) do |form| %> <%= form.label "住所"%> <%= form.text_field :address, value:"#{session[:address]}" %> <%= form.submit "次へ" %> <% end %> <%= link_to "戻る", first_performer_steps_path %>
session変数はviewでも利用できるのでvalue:"#{session[:name]}"
のような形で変数を文字列としてvalueオプションに展開しております。
session変数に値が格納されているのでsecond.html.erbにある戻るボタンを押しても、session変数の中身が空にならないはずなのですが、何故かformは空で表示されてしまいます。
また少し気づいたのですが、戻るボタンを押してfirstにリダイレクトするとセッションの中身(urlパラメーターにあったもの)が消えています。
原因がわからないのですが、どうすれば良いでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー