LoginSignup
0
0

More than 1 year has passed since last update.

Ruby on Railsのバリデーションとエラーメッセージについて

Posted at

04f5bfcebee7172c56cb228ee1d75926.png

例えばこれは簡単なToDoアプリですが、新規追加画面でバリデーションをかけて空欄、または5文字以上入力しないと登録できないようにします。
バリデーションとはデータ内容に一定の制限をかけることです。空のデータを登録できないようにする、パスワード入力において文字数制限をかけるなどです。

バリデーションの記述はappディレクトリのmodelsにあるファイルに記述します。

class Task < ApplicationRecord
  validates :title,
  presence: { message: 'タイトルを入力してください'},
  length: { minimum: 5, message: '5文字以上入力してください'}
end

validates :title,でtitleカラムにバリデーションをかけるという意味
presenceで空のデータは登録できないという意味{ message: 'タイトルを入力してください'},でエラーメッセージが表示されます。
length: { minimum: 5, message: '5文字以上入力してください'}で5文字以下の場合はエラーメッセージが表示されるようになります。

続いてviewファイルの記述

  <p>
    <%= f.label :title %> <br>
    <%= f.text_field :title %>
    <% if @task.errors.any? %>
    <%= @task.errors.messages[:title][0] %>
    <% end %>
  </p>
  <p>
    <%= f.submit%>
  </p>

入力欄text_fieldの下にエラーメッセージを出力させます。

<% if @task.errors.any? %>
<%= @task.errors.messages[:title][0] %>
<% end %>

@taskモデルにエラーがあった時エラーメッセージを表示させる記述になります。

cf25d519677515ac2b411131fa6168b0.png

入力が空の場合

c3e67ccfdc73e46a478e6658da60e8e9.png

5文字未満の場合

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0