module PhModel::Concerns::AttributeNestedValidation
Public Instance Methods
check_one(value, attribute_name)
click to toggle source
# File lib/ph_model/concerns/attribute_nested_validation.rb, line 29 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
format_nested_attribute_name(attribute_name, index, item_value)
click to toggle source
# File lib/ph_model/concerns/attribute_nested_validation.rb, line 25 def format_nested_attribute_name(attribute_name, index, item_value) "#{attribute_name}[#{index}]" end
validate_nested_attributes()
click to toggle source
# File lib/ph_model/concerns/attribute_nested_validation.rb, line 10 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, format_nested_attribute_name(attribute_name, index, item_value)) end end else check_one(value, attribute_name) end end end