作成した入力フォーム(form_with)の入力内容をDB(MySQL)に保存したい
Ruby on Railsで入力フォームを作成しています。Viewの部分は何も問題なく動くのですが、なぜかデータベースに保存されません。解決策をご教授いただければ幸いです。
発生している問題・エラーメッセージ
エラーメッセージはありません。
該当のソースコード
book.html.erb(View)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>予約システム</title> </head> <body> <h1>予約フォーム</h1> <%= form_with model: @reservation do |f| %> <ul class = "foo"> <li> <%= f.label :name, '氏名'%> <%= f.text_field :name, size:"40", autocomplete: 'off' %> </li> <li> <%= f.label :club, '部活名' %> <%= f.text_field :club, size:"40"%> </li> <li> <%= f.label :email, '連絡先' %> <%= f.text_field :email, size:"40", autocomplete: 'off' %> </li> <li> <%= f.label :leader, '部長名' %> <%= f.text_field :leader, size:"50"%> </li> <li> <%= f.label :adviser, '顧問名' %> <%= f.text_field :adviser, size:"50"%> </li> <li> <%= f.label :place, '場所' %> <%= f.text_field :place %> </li> <li> <%= f.label :time, '活動日時' %> <%= f.text_field :time %> </li> <li> <%= f.label :member, '活動人数' %> <%= f.text_field :member %> </li> <li> <%= f.label :purpose, '使用用途' %> <%= f.text_field :purpose, size:"80" %> </li> </ul> <div class="button_wrapper"> <a class="btn", href="/book_preview"><%= f.submit "プレビュー画面へ"%></a> </div> <% end %> </body> </html>
home_controller.rb
class HomeController < ApplicationController def book @reservations = Reservation.all end def new @reservation = Reservation.new end def create # @reservation = Reservation.new(content: reservation_params[:content]) @reservation = Reservation.new(reservation_params) #Reservation.create(reservation_params) if @reservation.save flash[:success] = "保存できました" # render '/book_preview' redirect_to @reservation else flash[:danger] = "保存ができていません" render :new end #redirect_to("/book_preview") end private #ストロングパラメータ def reservation_params params.requie(:reservation).permit(:name) end def edit @reservation = Reservation.find(params[:id]) end def update Reservation.find(params[:id]).update(reservation_params) end def book_preview end end
route.rb
Rails.application.routes.draw do get "/" => "home#book" post "create" => "home#create" get "book_preview" => "home#book_preview" # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end
book_preview.html.erb(この問題には関係がないかもしれませんんが一応載せておきます)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>予約システム</title> </head> <body> <h1>プレビュー画面</h1> <table border="1"> <tr> <td>氏名</td><td></td> </tr> <tr> <td>部活名</td><td></td> </tr> <tr> <td>連絡先</td><td></td> </tr> <tr> <td>部長名</td><td></td> </tr> <tr> <td>顧問名</td><td></td> </tr> <tr> <td>場所</td><td></td> </tr> <tr> <td>活動日時</td><td></td> </tr> <tr> <td>活動人数</td><td></td> </tr> <tr> <td>使用用途</td><td></td> </tr> <div class="button_wrapper"> <a href="/" class="btn">予約フォームに戻る</a> <a class="btn">予約を確定する</a> </div> </body>
試したこと
form_withとデータベースで検索して出てきたサイトを片っ端から参考にコードをいじったのですが、結果は変わらずでした。サイトに書かれていることを理解しているかと言われれば完璧に理解はできていないです。個人的にroute.rbが怪しいかなと思っています。
補足情報(FW/ツールのバージョンなど)
MacOS Big Sur 11.4
MySQL Ver 8.0.23
Ruby on Rails Ver 6.1.3.2
Ruby Ver 2.7.2p137