Sha256: 5086fd47b3885fc7dd4ac8abfc9daf67c214e3a0db7c6f3b33f96512c873f7d2
Contents?: true
Size: 959 Bytes
Versions: 1
Compression:
Stored size: 959 Bytes
Contents
# frozen_string_literal: true module Fields module Validations::Exclusion extend ActiveSupport::Concern included do embeds_one :exclusion, class_name: "Fields::Validations::Exclusion::ExclusionOptions" accepts_nested_attributes_for :exclusion after_initialize do build_exclusion unless exclusion end end def interpret_to(model, field_name, accessibility, options = {}) super exclusion&.interpret_to model, field_name, accessibility, options end class ExclusionOptions < FieldOptions attribute :message, :string, default: "" attribute :in, :string, default: [], array: true def interpret_to(model, field_name, _accessibility, _options = {}) return if self.in.empty? options = {in: self.in} options[:message] = message if message.present? model.validates field_name, exclusion: options, allow_blank: true end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
script_core-0.1.0 | spec/dummy/app/models/concerns/fields/validations/exclusion.rb |