createアクションでエラーになってしまう
Railsで簡単な予約アプリを作っています。
予約を登録するreservations#newでエラーが出ています。
Lessonモデル,Reservationモデル,Userモデルを作成
アソシエーション済
ruby
1# Lesson.rb 2 has_many :reservations 3# Reservation.rb 4 belongs_to :lessson 5 belongs_to :user 6# User.rb 7 has_many :reservations
ルーティングをネストしています
ruby
1#routes.rb 2 resources :lessons do 3 resources :reservations, only: [:new, :create] 4 collection do 5 get 'adminuser' 6 end 7 end
以下reservations_controller.rbのcreateアクションで@reservation保存できません
ruby
1class ReservationsController < ApplicationController 2 before_action :set_lesson 3 4 def new 5 @reservation = Reservation.new 6 end 7 8 def create 9 @reservation = @lesson.reservations.new(reservation_params) 10 binding.pry 11 if @reservation.save 12 redirect_to root_path 13 else 14 flash.now[:alert] = '申し訳ございません 再度送信いただくか、お電話にてお問い合わせください' 15 render :new 16 end 17 end 18 19 private 20 21 def reservation_params 22 params.require(:reservation).permit(:count).merge(user_id: current_user.id) 23 end 24 25 def set_lesson 26 @lesson = Lesson.find(params[:lesson_id]) 27 end 28end
ruby
1#new.html.haml 2.Reservation__form 3 = form_with model: [@lesson, @reservation], local: true do |f| 4 .ReservationForm 5 .ReservationForm__contents 6 .ReservationForm__label 7 = f.label :count, "何名様ですか?", class: 'RForm__label' 8 .ReservationForm__content 9 = f.number_field :count, autofocus: true, required: true, class: 'RForm__box1' 10 .ReservationForm__btn 11 = f.submit "予約する", class: 'RForm__btn'
試したこと
binding.pryでデバッグをおこない、
reservation_paramsにはちゃんとフォームの内容が入っていました。
linux
1[1] pry(#<ReservationsController>)> params 2=> <ActionController::Parameters {"authenticity_token"=>"bKvaqOO7+xjtWXHsIzthzdOdemBGG7lMzFLxaV9Sj9HhMLXYzKzqRsdOfWPx1ZkxXtNU29FxsXqDWqnLhQrPXg==", "reservation"=><ActionController::Parameters {"count"=>"2"} permitted: false>, "commit"=>"予約する", "controller"=>"reservations", "action"=>"create", "lesson_id"=>"3"} permitted: false> 32] pry(#<ReservationsController>)> @reservation 4=> #<Reservation:0x00007f9f4f28f8e8 id: nil, count: 2, lesson_id: 3, user_id: 12, created_at: nil, updated_at: nil>
初学者なのでスペルミスなどしょうもないミスかなとも思いましたが、
原因わからずお助けいただきたいです
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/28 02:13