lib/pupper/api_associations.rb in pupper-0.1.7 vs lib/pupper/api_associations.rb in pupper-0.1.8
- old
+ new
@@ -33,10 +33,12 @@
end
def create_attribute(name, foreign_key = nil, value = nil)
self.class.attr_accessor(name)
excluded_attrs << name if foreign_key.present?
+
+ name = foreign_key.present? ? "#{name}_#{foreign_key}" : name
send("#{name}=", value)
end
def find_assoc_type(name)
associations
@@ -54,20 +56,20 @@
end
end
def create_has_many_assoc_model(name, values)
create_attribute(name)
- values.map(&name.constantize)
+ model = "#{self.class.parent}/#{name.to_s.singularize}".classify.constantize
+ values.map(&model.method(:new))
end
def create_assoc_model(assocs, name, foreign_key, value)
case find_assoc_type(name)
when :has_one
assocs[name] = create_has_one_assoc_model(name, foreign_key, value)
when :has_many
assocs[name] = create_has_many_assoc_model(name, value)
else
- Rails.logger.warn("Try to use an association for #{name} in #{model_name.name}!")
assocs[:"#{name}_#{foreign_key}"] = value
end
end
def excluded_attrs