前提・実現したいこと
チャットアプリを作っています。
問題はメッセージを表示、保存したい時にエラーが出てしまい保存できないことです。
発生している問題、エラーメッセージ
NoMethodError in MessagesController#create
undefined method call' for #<ActionController::Parameters:0x000>
messages_controller.rb
Ruby
1 2Extracted source (around line #22): 3 4 |20| private 5 |21| def message_params 6 |22| params.(:message).permit(:content).merge(user_id: current_user.id) 7 |23| end 8 |24| end
該当のソースコード
routes.rb
Ruby
1Rails.application.routes.draw do 2 devise_for :users 3 root 'rooms#index' 4 get 'room/index' 5 resources :rooms, only: [:index, :new, :create] do 6 resources :messages, only: [:index, :create] 7 end 8end
messages_controller.rb
Ruby
1class MessagesController < ApplicationController 2 3 def index 4 @message = Message.new 5 @room = Room.find(params[:room_id]) 6 @messages = @room.messages.includes(:user) 7 end 8 9 def create 10 @room = Room.find(params[:room_id]) 11 @message = @room.messages.new(message_params) 12 if message.save 13 redirect_to room_messages_path(@room) 14 else 15 @messages = @room.messages.includes(:user) 16 render :index 17 end 18 end 19 20 private 21 def message_params 22 params.(:message).permit(:content).merge(user_id: current_user.id) 23 end 24end
message.rb
Ruby
1class Message < ApplicationRecord 2 belongs_to :room 3 belongs_to :user 4end 5
messages/index.html.erb
HTML
1<%= render "shared/header" %> 2 3<div class="chat-name wf-roundedmplus1c"> 4 <%= "#{@room.name}" %> 5</div> 6<div class="message-box", id='messages'> 7 <%= render partial: 'message', collection: @messages %> 8</div> 9 10<%= render "messages/footer" %>
messages__footer.html.erb
HTML
1<div class="footer"> 2 <div class="form-main wf-roundedmplus1c"> 3 <%= form_with model: [@room, @message], class: 'form', local: true do |f| %> 4 <div class="form-input"> 5 <%= f.text_field :content, class: 'form-message', placeholder: "Aa" %> 6 </div> 7 <%= f.submit '送信', class: 'form-submit' %> 8 <% end %> 9 </div> 10</div>
messages/_message.html.erb
HTML
1<div class="message"> 2 <div class="user-name"> 3 <div class="user-name"> 4 <%= message.user.nickname %> 5 </div> 6 <div class="dau-time"> 7 <%= l message.create_at %> 8 </div> 9 </div class="message-content"> 10 <%= simple_format(h message.content) %> 11 </div> 12 </div> 13</div>
補足情報(FW/ツールのバージョンなど)
Ruby2.6.5
Rails6.0.3
質問で要領を得ない事、足りない情報あるかもしれませんが、ご容赦ください。
併せてご教授頂ければ幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/19 07:34