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