Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby on Rails | 値が変更されていないことを検証するValidatorを実装し、更新時のみ適用する

概要

値が変更されていないことを検証するValidatorを実装し、更新時のみ適用する

内容

値が変更されていないことを検証するValidatorを実装し、更新時のみ適用します。

実装

Validator
lib/validator/not_changed_validator.rb

class NotChangedValidator < ActiveModel::Validator
   def self.validate(record)
      record.errors.add(:user, 'の内容が変更されていません。') unless record.changed?
   end
end

Application.rb設定

class Application < Rails::Application
  config.autoload_paths += Dir["#{config.root}/lib/**/"]
end

Modelからの呼び出し
|ruby

class Xxxx
validate NotChangedValidator, on: :update

# 他の処理
end
|