app/assets/javascripts/backbone-nested-attributes/model.js in backbone-nested-attributes-0.4.2 vs app/assets/javascripts/backbone-nested-attributes/model.js in backbone-nested-attributes-0.4.3

- old
+ new

@@ -1,11 +1,9 @@ (function(Backbone, _) { var BackboneModelPrototype = Backbone.Model.prototype - function setNestedAttributes(model, key, value, options) { - var attributes = attributesFor(key, value, options) - + function setNestedAttributes(model, attributes) { if (attributes) { _(model.relations).each(function (relation) { if (relation.type == 'one') { setHasOneNestedAttributeFor(model, relation, attributes) } else { @@ -183,11 +181,22 @@ return attributes } Backbone.NestedAttributesModel = Backbone.Model.extend({ set: function (key, value, options) { - var attributes = setNestedAttributes(this, key, value, options) - return BackboneModelPrototype.set.call(this, attributes, options) + var attributes + + // Duplicate backbone's behavior to allow separate key/value parameters, + // instead of a single 'attributes' object. + if (_.isObject(key) || key == null) { + attributes = key + options = value + } else { + attributes = {} + attributes[key] = value + } + + return BackboneModelPrototype.set.call(this, setNestedAttributes(this, attributes), options) }, toJSON: function (options) { return nestedToJson(BackboneModelPrototype.toJSON.apply(this, arguments), this.relations, options) },