urlが
http://localhost:3000/maps/new?tournament_id=1
のページでバリデーションにひっかかればrenderでnewを再描画するようにしています
def create @map = Map.create(map_params) return redirect_to action: 'index',tournament_id: @map.tournament.id if @map.save render "new" end
render後のurlが
http://localhost:3000/maps
になりますが
newアクションで
def new @school = Category.where(ancestry: params[:tournament_id]) end
としているのでrender後もparams[:tournament_id]を使いたいのですが、何か方法はないのでしょうか?
いろいろ調べて以下のようなことをしてきましたがダメでした
redirect_to action: 'new',tournament_id: @map.tournament.id
###追記
バリデーションに引っ掛かった場合エラーメッセージを表示させるようにしているためrenderを使用したいです
4行目
<div class="contents row mt-2"> <div class="containe_r p-4"> <%= form_with model: @map, local: true do |f| %> <%= render 'layouts/error_messages-map', model: f.object %> <%= f.text_field :address,placeholder: "住所",class: "game_title",value: "#{@map.address}" %> <%= f.text_area :text,placeholder: "紹介",value: "#{@map.text}" %> <%= f.collection_select :school_id, @school, :id, :name %> <%= f.hidden_field :tournament_id,value: @tournament %> <%= f.submit value: "SENT",class: "game_record" %> <% end %> </div> </div>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/05 15:41
2021/01/05 22:49