前提・実現したいこと
、、、
チャットのやり取りができるアプリの制作をしています。
自分の送ったチャットのみ編集消去ができるようにしたいのですが、
うまくいきません。
アドバイスお願いします。
、、、
発生している問題・エラーメッセージ
param is missing or the value is empty: message
該当のソースコード
rails
1 2messages_controller 3 4class MessagesController < ApplicationController 5 before_action :set_group 6 7 def index 8 @message = Message.new 9 @messages = @group.messages.includes(:user) 10 end 11 12 def create 13 @message = @group.messages.new(message_params) 14 if @message.save 15 redirect_to group_messages_path(@group), notice: 'メッセージが送信されました' 16 else 17 @messages = @group.messages.includes(:user) 18 flash.now[:alert] = 'メッセージを入力してください' 19 render :index 20 end 21 end 22 23 def edit 24 @message = Message.find(params[:id]) 25 end 26 27 def update 28 @message = current_user.messages.find(params[:id]) 29 @message.update(message_params) 30 redirect_to group_messages_path(@group), notice:"メッセージを編集しました" 31 end 32 33 def destroy 34 @message = current_user.messages.find(params[:id]) 35 @message.destroy(message_params) 36 redirect_to group_messages_path(@group), notice:"投稿を削除しました。" 37 end 38 39 private 40 41 def message_params 42 params.require(:message).permit(:content, :image).merge(user_id: current_user.id) 43 end 44 45表示されるメッセージのhaml 46 47.message 48 .upper-message 49 .upper-message__user-name 50 = message.user.name 51 .upper-message__date 52 = message.created_at.strftime("%Y年%m月%d日 %H時%M分") 53 .lower-message 54 - if message.content.present? 55 %p.lower-message__content 56 = message.content 57 = image_tag message.image.url, class: 'lower-message__image' if message.image.present? 58 59 60 = form_for [@group, @message] do 61 = label_tag "編集する" 62 = text_field :content, placeholder: 'type a message' 63 .form__mask 64 = label :image, class: 'form__mask__image' do 65 = icon('fas', 'image', class: 'icon') 66 = file_field :image, class: 'hidden' 67 = submit_tag
試したこと
message_paramがないということで
@message.update(message_params)など持たせようと思ったのですが
ダメでした。
初心者で勉強中です。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
params のログを追記できますか?
https://gyazo.com/da80c421d5b91617fefd9916951b502d
こちたでよろしいでしょうか?
今現在messages/indexにてメッセージの送信ができるのですが
今まで学習してきた編集のやり方だと編集ページにとび
編集できるうにしていたのですが
= link_to "編集", edit_message_path(@message.id)で
edit.html.hamlに移動する事ができませんでした。
なのでindexのページのまま編集できるようにしようと思ったのですが、
messageのcreateアクションが動いて普通にメッセージが送信されてしまいます。。。
まずやりたいことは、一覧ページでメッセージを削除することでいいんでしたよね?
一覧ページにてメッセージの編集です。
もしくは、編集ページに移動しての編集です。
消去もこの後に調べて機能追加しようと考えています。
messagesのコントローラーがこのような感じで
https://gyazo.com/e2d4b1b51a6d18c18130ee2b1d380b1a
メッセージの送信と表示ができているのですが、
そのメッセージそれぞれにまたformを追記してupdateしたいのですが
そのまま新しいメッセージが送られるというのが現状です。
回答2件
あなたの回答
tips
プレビュー