module Cocoon::ViewHelpers

def create_object_on_association(f, association, instance, force_non_association_create)

def create_object_on_association(f, association, instance, force_non_association_create)
  if instance.class.name.starts_with?('Mongoid::') || force_non_association_create
    create_object_with_conditions(instance)
  else
    assoc_obj = nil
    # assume ActiveRecord or compatible
    if instance.collection?
      assoc_obj = f.object.send(association).build
      f.object.send(association).delete(assoc_obj)
    else
      assoc_obj = f.object.send("build_#{association}")
      f.object.send(association).delete
    end
    assoc_obj = assoc_obj.dup if assoc_obj.frozen?
    assoc_obj
  end
end