🙌

(自分用メモ)詳細 スクール課題1 タスクアプリ作成 flash警告文が常に表示される

2022/12/26に公開約2,400字

<結論>
Flash警告文を誤ったメソッドに記載。そもそも記載しなくて良かった。
そら常に出るわな笑

<以下本文>
課題1スケジュールアプリ new.htmlにおいてflash警告文が常に表示される

質問ボックス検索しましたが、有用な質問が見受けられなかった為、
恐縮ながらこの場にて質問させて頂きたく、ご助言の程、よろしくお願いします。

■現状
課題1スケジュールアプリにおいて、newページにてflashメッセが常に表されています。
実装のため
https://mng-camp.potepan.com/curriculums/rails-11
上記参考の上、以下実施しましたが、不具合が発生し、解決できずにいます。
・コントローラへの記入
・new.html.erb作成
その後、new.html.erbページへ行くと以下のような画面へ
成功も失敗もしていない通常時に下記不具合のflash文が表示される

コントローラのdef newのところで分岐がうまくいっていないと予想しましたが
s下調べましたが、具体的にどう書けばいいのかわからないので、質問させて頂きました。

■実際に出ている不具合
new.html記入欄へ記入する前からこの状態です

コントローラ

new.html

■やりたいこと
不具合を解決し、モデルサイトの様にフラッシュが正常に出る様にしたい

■環境
M1チップ
ventura ver13.0
rails704
ruby304

■既に試したこと、参考にしたページ
https://mng-camp.potepan.com/questions/d8e326df-8f37-442e-93a2-182ae39c850f
https://mng-camp.potepan.com/questions/e750c3fa-dd07-4425-a49b-0ac38ee9caed
https://mng-camp.potepan.com/questions/be7df747-e1c4-4577-a22f-fc73c49d993c

■git
https://github.com/Hiro-Nagai/ptpn_sch

<回答>

ユーザー画像
川崎(メンター)

2022/11/6 14:43

flashは基本的に次のページへredirectしたときに表示されます。
renderするときはflashの書き方を変更する必要があります。
こちらの記事を参考にしていただければと思います。
https://qiita.com/kashiwamochi_ruby_rails/items/b4a43486aec3790ef0dd

ユーザー画像
長井宏樹
2022/11/6 17:11
川崎様
ご回答有り難うございます。
頂いた記事を参考に
記事内の文章の4点目に該当させる為、コントローラー 11行目に.now追記しました。
が、状況変わらずでした。
それぞれの組み合わせ
flash[]とredirect_to => 次のページにリダイレクトした時点でflashは消える
flash[]とrender => renderはリクエストを送信しないため、次のページに移動してもflashは残る
flash.now[]とredirect_to => redirect_toの時点でflashが消えるため、flash自体表示されない
flash.now[]とrender => 次のページへリダイレクトした時点でflashは消える

そもそも、コントローラーのdef newに追記するという認識ですが、合ってますでしょうkあ?
頂いたリンクにてpostページからnewページへ移ると解釈すると、def createの定義も修正する必要があるのでしょうか?

参考:自分で調べたページ
https://qiita.com/jackie0922youhei/items/405711d2a2f1c483cbf9
https://qiita.com/taraontara/items/2db82e6a0b528b06b949

ユーザー画像
ちだ (メンター)
2022/11/6 18:39
お世話になっております。
状況確認いたしました。
そもそもの確認ですが、newメソッドに遷移した時、flashを表示する必要はありますか?
流れ的には下記だと思います。
①一覧画面表示 posts index
②一覧画面から新規作成ボタンを押下 posts new (ここでflashを表示する必要は?)
③新規作成初期画面から作成ボタンを押下 posts create (ここでDB操作が入るため、flashは必須)
newメソッドでflashの表示分けを行うif文が定義されていますが、そもそもif文やflashの定義自体が不要なのではと思いました。
お手数ですが、ご確認をお願いいたします!

ユーザー画像
長井宏樹
2022/11/6 19:48
メンターちだ様
ご回答有り難うございます
そもそもdef newに追記せずとも良かったようです。
正確な手順を理解していなかった故のミスでした。
ご指摘有り難うございました

Discussion

ログインするとコメントできます