エラーメッセージのパーシャル作成

ユーザーの新規登録や掲示板の作成時に、「○○を入力してください」というフラッシュメッセージを表示したいが、複数のビュー画面で表記したい。

効率的に表記するためにパーシャルを作成する。

すでにモデルにバリデーションは記載してあるので、続きからの手順をメモしておく。

 

 

<手順>

♡(今回は事前に行っている状態だが、モデルにバリデーションを設定しておく)

♡エラーメッセージのパーシャル作成

♡表示したいビューに埋め込んでいく

 

 

①モデルにバリデーションの設定がなされているか確認

app/models/board.rb

class Board < ApplicationRecord
  belongs_to :user
  mount_uploader :board_image, BoardImageUploader
  validates :title, presence: true, length: { maximum: 255 }
  validates :body, presence: true, length: { maximum: 65_535 }
end
     

設定できているので、次にすすむ

 

②エラーメッセージのパーシャルを作成する

    

<% if object.errors.any? %>
  <div id="error_explanation" class="alert alert-warning">
    <ul>
      <% object.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
    </ul>
  </div>
<% end %>

 

③表示したいビューに埋め込んでいく

 新規登録画面と掲示板作成画面に以下のように埋め込む。

 

 

 

 object: f.objectとすることで、流用する際にそのまま使えて便利になる。