kuccho524 / Tetsubun

0 stars 0 forks source link

コメント入力時に一度エラーを表示するとずっと残り続ける #71

Closed kuccho524 closed 3 years ago

kuccho524 commented 3 years ago

状況

コメント入力時に一度でもエラーを表示させると、エラーが表示されその他の処理を実行しても残り続ける。

実行したこと

メッセージコントローラーの下記を参照 def gets_entries_all_messages @messages = @room.messages.includes(:user).order("created_at asc") @entries = @room.entries end

上記より下記を記載するも改善せず

def gets_train_all_comments @comments = @train.train_comments.order("created_at asc") end

kuccho524 commented 3 years ago

現状報告

destroyを全てインスタンス変数で定義することでコメント削除時にエラーが表示されなくなったが、 投稿後に空白で投稿するとルーティングエラーが表示され、バリデーションのエラーが表示されない。

試したこと

messagesコントローラーを参照に下記を定義し、createとdestroyそれぞれに記述。 def gets_all_train_comments @train_comments = @train.train_comments.order("created_at asc") end

結果

状況変わらず。無い場合でも同じ状況

kuccho524 commented 3 years ago

解消報告

以下の方法で事象が解決しました

対応方法

1、rails routesでルーティングを確認

2、対象のform_withアクションに下記を記述 url: train_train_comments_path, method: :post, remote: true

3、error.js.erbに下記を記述 $("#comment-error").html("<%= j(render 'shared/errors', obj: @train_comment) %>");

4、train_idがない旨のエラーが表示されたため、form_withのurlを下記に変更 url: train_train_comments_path(train)

上記を実施したところ、コントローラー周りを修正せず解決することができました。