2013-10-28 10 views
5

İlişkilendirme/yabancı anahtarın gerekli olduğu bir veri modelim var. Tavuk/yumurta durumuna girmeden model yaratma sırasında bu kısıtlamayı uygulamak mümkün mü?Sequelize.js - "oluşturma" veya "oluşturma" çağrısı sırasında model ilişkilendirmesi

En az bir tane device ile ilişkili olması gereken bir User sınıfına sahip olduğumu varsayalım. Benzer şekilde, device bir kullanıcıya ait olmalıdır. Böyle bir şey (denenmemiş kodu, sözdizimi hatalarını umursamıyorum):

Ben tüm Device bilgilerin yanı sıra tüm User bilgiler varsa, create ilk çağrıldığında sağlamak istiyoruz
User = db.define("user", { 
    name: Sequelize.STRING 
}) 

Device = db.define("device", { 
    uuid: Sequelize.STRING 
}) 

User.hasMany(Device) 

. "Yağ modelleri, sıska denetleyiciler" ile tutmak Ben bunu benim modelleri içine koymak istiyorum. Böyle bir şey yapmak mümkün mü?

user = User.create(
    name: "jesse" 
    device: 
     uuid: "84e824cb-bfae-4d95-a76d-51103c556057" 
) 

create yöntemini geçersiz kılabilir miyim? Ya da kullanabileceğim bir çeşit before kayıt olayı kanca var mı?

cevap

6

Geçerli master'ın kanca desteği vardır. https://github.com/sequelize/sequelize/pull/894

:

var User = sequelize.define('User', { 
    username: DataTypes.STRING 
}, { 
    hooks: { 
    beforeCreate: function(user, next) { 
     makeYourCheck(function() { 
     next("a string means that an error happened.") 
     }) 
    } 
    } 
}) 

Detaylı bilgi için PR kontrol edebilirsiniz