1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Rails】ActiveModel::Errorオブジェクトについて

Posted at

ActiveModel::Errorsについて

ActiveModel::Errorsは、Ruby on RailsのActiveModelモジュール内のクラスで、モデルオブジェクト上のエラーメッセージを保持および管理するためのもの。主にActiveRecordモデルのバリデーションエラーを取り扱う際に使用されるが、ActiveRecordに依存しないモデルでも使用することができる。

主な特徴と使用方法

1. エラーの追加

addメソッドを使用して、特定の属性にエラーメッセージを追加できる。

errors.add(:name, "can't be blank")

2. エラーの存在チェック

  • any?メソッドでモデルにエラーが存在するかを確認できます。
  • include?(attribute)で特定の属性にエラーが存在するかを確認できます。

3. エラーメッセージの取得

  • full_messagesで全てのエラーメッセージの配列を取得できる。
  • []メソッドで指定した属性のエラーメッセージの配列を取得できる。
errors[:name]  # => ["can't be blank"]

4. エラーのクリア

clearメソッドで全てのエラーメッセージを削除できる。

5. 詳細なエラー情報

detailsメソッドを使用してエラーの詳細情報(エラータイプや追加のオプション)を取得できる。

使用例

class User < ApplicationRecord
  validates :name, presence: true
end

user = User.new(name: "")
user.valid?  # => false
user.errors.full_messages  # => ["Name can't be blank"]
1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?