rails初心者です。
現在架空のアパレルサイトを制作しており、
その中でログインユーザーと既存のスタッフ間でチャットが出来る機能を実装しようと考えております。
新規チャット名を入力とチャットしたいスタッフ名を選んでCreate Roomボタンを押すと
以下のエラーメッセージが発生しました。
Parametersには値が入っているのでrooms_controller.rb内のparamsの記述が誤っているのでは無いかと推測していますが実際にどのような記述をして良いかわかりません。
どなたかご指導のほどよろしくお願いいたします。
###発生している問題・エラーメッセージ
ターミナル内 6: def create 7: @room = Room.new(room_params) => 8: binding.pry 9: if @room.save 10: redirect_to new_chat_path 11: else 12: render :new 13: end 14: end [1] pry(#<RoomsController>)> params => <ActionController::Parameters {"authenticity_token"=>"en4ozgJgTvHsBXPAEV6+UyaK/stZPAtk5m6lNU58kmmN+2f5CKo+mlOgzwEEmO5DVIGynskmOKLYZ/rOv+xytA==", "room"=><ActionController::Parameters {"name"=>"新規チャット", "staff_name"=>"misaki", "user_id"=>"3"} permitted: false>, "commit"=>"Create Room", "controller"=>"rooms", "action"=>"create"} permitted: false> [2] pry(#<RoomsController>)> @room.save => false [3] pry(#<RoomsController>)> @room.errors => #<ActiveModel::Errors:0x00007ff4af5662a0 @base= #<Room:0x00007ff4b194ebe0 id: nil, name: "新規チャット", user_id: 3, staff_name: "misaki", created_at: nil, updated_at: nil>, @details= {:staff=>[{:error=>:blank}, {:error=>:blank}], :user=>[{:error=>:blank}, {:error=>:blank}]}, @messages= {:staff=>["must exist", "can't be blank"], :user=>["must exist", "can't be blank"]}>
###該当のソースコード
roomscontroller
1class RoomsController < ApplicationController 2 def new 3 @room = Room.new 4 end 5 6 def create 7 @room = Room.new(room_params) 8 if @room.save 9 redirect_to new_chat_path 10 else 11 render :new 12 end 13 end 14 15 private 16 17 def room_params 18 params.require(:room).permit(:name, :staff_name, :user_id) 19 end 20 21end
newhtml
1<div class='chat-room-form'> 2 <h1>新規チャットルーム</h1> 3 <%=form_with model: @room, local: true do |f|%> 4 <div class='chat-room-form__field'> 5 <div class='chat-room-form__field--left'> 6 <%= f.label :ルーム名, class: 'chat-room-form__label'%> 7 </div> 8 <div class='chat-room-form__field--right'> 9 <%= f.text_field :name, class: 'chat__room_name chat-room-form__input', placeholder: 'ルーム名を入力してください'%> 10 </div> 11 </div> 12 <div class='chat-room-form__field'> 13 <div class='chat-room-form__field--left'> 14 <label class='chat-room-form__label' for='chat_room_チャットメンバー'>スタッフ</label> 15 </div> 16 <div class='chat-room-form__field--right'> 17 <select name="room[staff_name]"> 18 <option value="">チャットするスタッフを選択してください</option> 19 <% Staff.all.each do |staff| %> 20 <option><%= staff.staff_name %></option> 21 <% end %> 22 </select> 23 <input name="room[user_id]" type="hidden" value=<%= current_user.id %>> 24 </div> 25 </div> 26 <div class='chat-room-form__field'> 27 <div class='chat-room-form__field--left'></div> 28 <div class='chat-room-form__field--right'> 29 <%= f.submit class: 'chat-room-form__action-btn'%> 30 </div> 31 </div> 32 <% end %> 33</div>
roomsテーブル
|id|name|user_id|staff_name|created_at|updated_at|
|:--|:--:|--:|
||||
staffsテーブル
|id|staff_name|created_at|updated_at|
|:--|:--:|--:|
||||
あなたの回答
tips
プレビュー