お世話になります。
newアクションで新規登録画面を開いて、必要項目を入力し、[登録する]ボタンを押したとします。
そこでバリデーションエラーが発生し、新規登録画面に戻るのですが、URLはcreateになってしまいます。
URLがcreateのまま[F5]ボタン等で更新した場合、Routing Errorになってしまします。
バリデーションエラーでnew画面に戻ったらURLもnewに戻す方法をご教授いただきたいです。
例
http://localhost:3000/○○○○○/new
↓ 画面項目入力後[登録する]ボタン押下
バリデーションエラー発生
↓
http://localhost:3000/○○○○○/create (new画面だけどURLはcreate)
以下設定です。
ruby
1#controller 2 def new 3 @schcols = Schcol.new 4 @schmaster_schname = params[:sch_name] 5 @schmaster_schid = params[:sch_id] 6 end 7 def create 8 @schcols = Schcol.new(schcols_params) 9 if @schcols.save 10 redirect_to schcols_path, notice: "#{params[:sch_name]}を登録しました。" 11 else 12 @schmaster_schid = params[:sch_id] 13 @schmaster_schname = params[:sch_name] 14 render :new 15 end 16 end
ruby
1#model 2 validates :sch_id, :sch_year, :classification, :item_id, :sch_col1, presence: true 3 validates :sch_year, numericality: true 4 validates :sch_id, uniqueness: { scope: [:sch_year, :classification, :item_id, :sch_col1], 5 message: I18n.t('errors.messages.key_duplicated_schcol')}
動作環境
ruby 2.5.3p105
Rails 5.2.3
説明がわかりにくいかもしれませんが、宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー