Rails始めて2ヶ月目の初学者です。
railsでポイントを使ってサイト内で注文できる仕組みを作っています。
今、実装を終えているところまでは
1.フォームにユーザーは発注したい数を入力(@order.quantity)しsubmit
2、orderモデル内でbeforeアクションとし@order.priceに1単位あたりのレートを掛け、それを@order.priceとして保存する(購入したい量に応じた値段を保存)
3.下記createアクション内で、もし@order.saveかつ、所持ポイントが@order.priceを上回っている時に
orderアクションに飛ばす
という流れになっているのですが、この場合
どうしてもポイントが万が一足りなかった場合、実際に発注されませんが(orderアクションには飛びませんが)、saveは動いてしまうため
注文履歴には買えていない発注内容が反映されてしまいます::
どうすれば、回避できますでしょうか(T . T)
どなたか、ご教授願えませんでしょうか。。よろしくお願いいたします。。。::
ruby
1 2def create 3 @user = current_user 4 @order = Order.new(order_params) 5 @order.user = current_user 6 7 if @order.save && @user.point >= @order.price 8 9 order 10 11 else 12 redirect_to orders_error_path 13 end 14 end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。