※初心者のため言葉足らず、理解不足な面もあると思いますがよろしくお願いします。
1,達成したいこと
form_forで、入力フォームが空白のまま送信した際に"can't be blank"や「空白のままでは送信できません」などエラーの内容を示したメッセージが表示されるようにしたい。
2,現在の状況
バリデーションには成功しているがエラーメッセージが表示されない。
表示されないだけでエラーにはなっていない。
3,行ったこと
※参考にしたページは項目4にリンクを貼っています。
①バリデーション
models/post.rb
1・・・・・・・・・以下一部抜粋・・・・・・・・・・・・・・ 2 validates :date, presence: true 3 validates :title, presence: true 4 validates :reason, presence: true 5 validates :experiment, presence: true 6 validates :review, presence: true 7 validates :setting, inclusion: {in: [true, false]}
②view/layouts/_error_messages.html.erbのファイルを作成
view/layouts/_error_messages.html.erb
1<% if model.errors.any? %> 2 <div class="alert alert-warning"> 3 <ul> 4 <% model.errors.full_messages.each do |message| %> 5 <li><%= message %></li> 6 <% end %> 7 </ul> 8 </div> 9<% end %>
③view/posts/new.html.erbに+の部分を追記
view/posts/new.html.erb
1<%= form_for @post do |t| %> 2 +<%= render 'layouts/error_messages', model: t.object %> 3 <div class="post_field"> 4 ・・・・・・・・・・中略・・・・・・・・・・・・・ 5 </div> 6 7 <%= t.submit "送信する" %> 8<% end %> 9 10 <p>登場人物を追加する</p> 11 <!-- urlを追加して送信先を明確に指定した --> 12 <%= form_for @character, url: character_posts_path do |f| %> 13 +<%= render 'layouts/error_messages', model: f.object %> 14・・・・・・・・・・・・・・・・・・中略・・・・・・・・・・・・・・・・・ 15 <%= f.submit "登録する" %> 16 <% end %>
4,参考にしたページ

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/15 05:37