ストロングパラメーターをeachして複数レコードを更新する内容につきまして、Aでは動いたのですがBでは成功メッセージが出るにも関わらず、レコードの中身が更新されませんでした。flashとredirectをトランザクションの中に入れると何故更新されないのでしょうか。。。
□ A(成功)
ActiveRecord::Base.transaction do month_params.each do |id,item| reception = Reception.find(id) reception.update!(item) end end flash[:notice] = "指定日の受付に成功しました" redirect_to @user and return rescue ActiveRecord::RecordInvalid flash[:alert] = "無効な入力データがあった為、更新をキャンセルしました。" redirect_to redirect_to @user end
□ B(失敗して値が更新されない)
ActiveRecord::Base.transaction do month_params.each do |id,item| reception = Reception.find(id) reception.update!(item) flash[:notice] = "指定日の受付に成功しました" redirect_to @user and return end end rescue ActiveRecord::RecordInvalid flash[:alert] = "無効な入力データがあった為、更新をキャンセルしました。" redirect_to redirect_to @user end
お手隙の際で構いませんので、ご教授をお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/03 03:53
2021/03/03 06:11