Class: AnyFieldValidator
- Inherits:
-
ActiveModel::Validator
- Object
- ActiveModel::Validator
- AnyFieldValidator
- Defined in:
- app/validators/any_field_validator.rb
Overview
AnyFieldValidator
Custom validator that checks if any of the provided fields are present to ensure creation of a non-empty record
Example:
class MyModel < ApplicationRecord
validates_with AnyFieldValidator, fields: %w[type name url]
end
Instance Method Summary collapse
-
#initialize(*args) ⇒ AnyFieldValidator
constructor
A new instance of AnyFieldValidator.
- #validate(record) ⇒ Object
Constructor Details
#initialize(*args) ⇒ AnyFieldValidator
Returns a new instance of AnyFieldValidator.
15 16 17 18 19 20 21 |
# File 'app/validators/any_field_validator.rb', line 15 def initialize(*args) super if [:fields].blank? raise 'Provide the fields options' end end |
Instance Method Details
#validate(record) ⇒ Object
23 24 25 26 27 28 |
# File 'app/validators/any_field_validator.rb', line 23 def validate(record) return unless one_of_required_fields.all? { |field| record[field].blank? } record.errors.add(:base, _("At least one field of %{one_of_required_fields} must be present") % { one_of_required_fields: one_of_required_fields }) end |