前提・実現したいこと
現在railsで投稿アプリを作成しています。
simple_calendarを用いて、入力したデータをカレンダーに反映させる実装までは行えました。ですが、カレンダーを表示しているビュー(index)とデータを入力するビュー(現在はnew)を一つのビュー(index)にしたいと考えております。しかし、ストロングパラメーターのエラーがかかっていて実装できていない状況です。
エラーを回避する方法はあるでしょうか?
お力添えをよろしくお願いいたします。
発生している問題・エラーメッセージ
ActionController::ParameterMissing in BoardsController#create param is missing or the value is empty: board def board_parameter params.require(:board).permit(:name, :title, :start_time).merge(coach_id: current_coach.id, name: current_coach.name) end def boards_parameter
該当のソースコード
boardコントローラー class BoardsController < ApplicationController before_action :correct_post, only: [:edit] before_action :authenticate_user!, unless: proc { coach_signed_in? } def index @boards = Board.all end def new @board = Board.new end def show @board = Board.find(params[:id]) end def create if current_coach.present? Board.create(board_parameter) else current_user.present? Board.create(boards_parameter) end binding.pry redirect_to boards_path end def destroy @board = Board.find(params[:id]) @board.destroy redirect_to boards_path end def edit @board = Board.find(params[:id]) end def update @board = Board.find(params[:id]) if @board.update(board_parameter) redirect_to boards_path else render 'edit' end end private def board_parameter params.require(:board).permit(:name, :title, :start_time).merge(coach_id: current_coach.id, name: current_coach.name) end def boards_parameter params.require(:board).permit(:name, :title, :start_time).merge(user_id: current_user.id, name: current_user.name) end def correct_post @board = Board.find(params[:id]) redirect_to boards_path unless @board.coach_id == current_coach.id end end
indexビュー <% content_for :css do %> <%= stylesheet_link_tag 'board-index' %> <% end %> <div class="board-top inner"> <h2>コーチの討論時間一覧</h2> <%= form_with(model: @board, local: true) do |form| %> <% if coach_signed_in? %> <div class="title"> <%= form.label :教える種目, class: "style" %> <p><%= form.text_field :title %></p> </div> <div class="time"> <%= form.label :開始時間, class: "times" %> <p><%= form.datetime_select :start_time %></p> </div> <div class="submit"> <%= form.submit "送信", class: "send" %> </div> <% else user_signed_in? %> <div class="title"> <%= form.hidden_field :title %> </div> <div class="time"> <%= form.label :開始時間, class: "times" %> <p><%= form.datetime_select :start_time %></p> </div> <div class="submit"> <%= form.submit "送信", class: "send" %> </div> <p>※参加したい講座と全く同じ時間を登録してください</p><br> <% end %> <% end %> <%= link_to 'トップへ戻る', root_path(@boards), class: "top" %> <br> <%= month_calendar events: @boards do |date, board| %> <%= date.day %><br> <% board.each do |board| %> <% if board.coach_id.present? %> <%= board.name %><br> <% if coach_signed_in? %> <%= link_to board.title, board_path(board) %><br> <%= link_to board.start_time.strftime('%H:%M'), board_path(board) %><%= "〜" %> <% else %> <%= board.title %> <%= board.start_time.strftime('%H:%M') %><%= "〜" %> <% end %> <% else %> ↪︎<%= board.name %> <% end %> <% end %> <% end %> </div>
補足情報(FW/ツールのバージョンなど)
拙い文章で申し訳ありません。
わからない部分、追加して欲しいコードがありましたら、コメントいただけると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー