Sha256: 95691656825c659cd7c98b8c522f12f394609c306c5dc1046209f9e1de85233f
Contents?: true
Size: 988 Bytes
Versions: 2
Compression:
Stored size: 988 Bytes
Contents
module PhModel module Concerns module AttributeNestedValidation extend ActiveSupport::Concern included do |other| other.validate :validate_nested_attributes end def validate_nested_attributes self.class.attributes.each do |attribute_name, info| value = send(attribute_name) if info[:type].is_a? Array if value.respond_to? :each_with_index value.each_with_index do |item_value, index| check_one(item_value, "#{attribute_name}[#{index}]") end end else check_one(value, attribute_name) end end end def check_one(value, attribute_name) return if !value.respond_to?(:valid?) || !value.respond_to?(:errors) || value.errors.nil? || value.valid? value.errors.full_messages.each do |message| errors.add(:base, "#{attribute_name}.#{message}") end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ph_model-1.1.0 | lib/ph_model/concerns/attribute_nested_validation.rb |
ph_model-1.0.2 | lib/ph_model/concerns/attribute_nested_validation.rb |