5

関連付け/外部キーが必要なデータ モデルがあります。ニワトリ/卵の状況に陥ることなく、モデルの作成中にその制約を強制する方法はありますか?

User少なくとも 1 つdeviceを関連付ける必要があるクラスがあるとします。同様に、 はdeviceユーザーに属している必要があります。このようなもの (テストされていないコード、構文エラーは気にしないでください):

User = db.define("user", {
    name: Sequelize.STRING
})

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

User.hasMany(Device)

createが最初に呼び出されたときに、すべてのDevice情報だけでなく、すべての情報を確実に取得したいと考えていUserます。「ファット モデル、スキニー コントローラ」を維持しながら、これをモデルに組み込みたいと思います。このようなことは可能ですか?

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

createメソッドをオーバーライドできますか? beforeまたは、使用できる保存イベント フックのタイプはありますか?

4

1 に答える 1

6

現在のマスターはフックをサポートしています。

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

詳細については、PR を確認してください: https://github.com/sequelize/sequelize/pull/894

于 2013-10-31T08:40:55.887 に答える