不要怂,就是干,撸起袖子干!

Commit aa2d6093 by sdepold

fixed removal of unused reference attribute

1 parent 3389cc74
......@@ -10,12 +10,13 @@ module.exports = (function() {
this.target = targetDAO
this.options = options
this.useJunctionTable = this.options.useJunctionTable === undefined ? true : this.options.useJunctionTable
this.isSelfAssociation = (this.source.tableName == this.target.tableName)
this.isSelfAssociation = (this.source.tableName === this.target.tableName)
this.associationAccessor = this.combinedName = this.options.joinTableName || Utils.combineTableNames(
var combinedTableName = Utils.combineTableNames(
this.source.tableName,
this.isSelfAssociation ? (this.options.as || this.target.tableName) : this.target.tableName
)
this.associationAccessor = this.combinedName = (this.options.joinTableName || combinedTableName)
var as = (this.options.as || Utils.pluralize(this.target.tableName))
......@@ -24,8 +25,8 @@ module.exports = (function() {
set: Utils._.camelize('set_' + as),
add: Utils._.camelize(Utils.singularize('add_' + as)),
remove: Utils._.camelize(Utils.singularize('remove_' + as)),
hasSingle: Utils._.camelize(Utils.singularize('has_' + as)),
hasAll: Utils._.camelize('has_' + as)
hasSingle: Utils._.camelize(Utils.singularize('has_' + as)),
hasAll: Utils._.camelize('has_' + as)
}
}
......@@ -43,7 +44,7 @@ module.exports = (function() {
this.foreignIdentifier = Utils._.underscoredIf((this.options.as || this.target.tableName) + 'Id', this.options.underscored)
} else {
this.foreignIdentifier = this.target.associations[this.associationAccessor].identifier
delete this.source.attributes[this.foreignIdentifier]
delete this.source.rawAttributes[this.foreignIdentifier]
}
// define a new model, which connects the models
......
......@@ -122,5 +122,18 @@ describe('Associations', function() {
})
})
})
describe('many to many', function() {
it("removes the reference id, which was added in the first place", function() {
var User = sequelize.define('User', { username: Sequelize.STRING })
, Task = sequelize.define('Task', { title: Sequelize.STRING })
User.hasMany(Task)
expect(Task.attributes.UserId).toBeDefined()
Task.hasMany(User)
expect(Task.attributes.UserId).not.toBeDefined()
})
})
})
})
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!