前提・実現したいこと
Railsにてチケット予約システムを作成します。
チケット予約時に、予約枚数と予約するチケットの種類を選択してもらいます。
※チケットの種類によってはチケット1枚で複数に入場できるものもあります。
モデルのバリエーション機能により、以下の条件を満たす時にエラーを
表示させたいと思います。
『残席数 ー (申し込みの枚数 * 申し込んだチケットで入場できる人数)< 0』
『残席数』と『申し込んだチケットで入場できる人数』の記述方法はわかるのですが、
『申し込みの枚数』をどのようにかけば良いかわかりません。
わからない理由はまだ作成されていないレコードの『id』がわからないからです。
サポートお願いします。
参考:
Ruby
1def check_ticket_limit 2 3 @@remaining = Stage.find(stage_id).remaining #残席数 4 @@num = 5 :count #予約枚数(書き方がわかりません) 6 * 7 Kind.find(kind_id).seats #人数 8 9 errors.add(:kind_id, ' 申し込みいただいた『チケット種別 / 枚数』の組み合わせではお席をご用意することができません。') 10 if @@remaining - @@num < 0 11 12 end
試したこと
Ticket.find(id).count
Ticket.find(:params[:id]).count
:count
なども駄目元でやりましたが、やっぱりだめでした。
※チケットの予約は『ticket』クラスで行なっています。
補足情報(FW/ツールのバージョンなど)
Rails 5.2.4.2
ruby 2.6.3p62
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/05 12:01
2020/05/05 12:03
2020/05/05 12:11
2020/05/05 12:23
2020/05/05 13:00
2020/05/05 13:57