class Kludge::Many
Public Instance Methods
save()
click to toggle source
Calls superclass method
# File lib/kludge/many.rb, line 4 def save if parent parent.value.send("#{name}=", value) end value.each(&:save) super end
validate()
click to toggle source
# File lib/kludge/many.rb, line 13 def validate if value.any? { |v| !v.valid? } value.map(&:errors).each do |e| e.each do |attribute, errors_array| errors_array.each do |msg| errors.add(attribute, msg) unless errors.added?(attribute, msg) end end end false else true end end
value=(value)
click to toggle source
# File lib/kludge/many.rb, line 28 def value=(value) @value = if value.is_a?(Hash) value.map do |key, value| @name.to_s.classify.constantize.find(value.delete(:id)).tap { |v| v.assign_attributes(value) } end else value.map do |val| if val.is_a?(Hash) @name.to_s.classify.constantize.new(val) else val end end end end