2016-11-28 2 views
0

나는 User이 하나 있는데, 그것에 관련된 하나의 UserSettings 레코드를 가지고있다. 나는 그것이 User을 만들 때 가 자동으로이 기본값을 가진 UserSettings 테이블에 레코드를 생성하도록 만듭니다.1 : 1 관계를 자동으로 만드는 방법은 무엇입니까?

나는 다양한 후크 조합 (beforeCreate, beforeValidate, afterCreate)을 시도했다. 아무것도 작동하는 것처럼 보였다.

User.create를 호출하고 UserSettings 관계를 포함 할 때 작동하지만 기본 개체를 전달하고 "포함"을 추가해야합니다.

생각하십니까?

답변

0

나는 1 : m + n : m 연관을 가졌지 만 그 경우에는 문제가되지 않을 것이라고 생각합니다.
현재 자동 기능이 있는지 모르겠지만 그 해결 방법으로 해결했습니다. m 랭
키 N : m 제품 나는 결과로 가서 결과 ID 새 LANGS로 생성 된 키를 생성 한 순간
내 경우
그것은
키 1이었다.
그런 다음 Associated Products에서 Keys를 생성했습니다.

export function create(req, res) { 
    return DictKey.create(req.body.body)// Create a Key 
    .then((res)=> { 
     for (var i = 0; i < req.body.langs.length; i++) { 
     DictValue.create({//Create Associated Languages 
      lang_id: req.body.langs[i], 
      key_id: res._id 
     }) 
     } 
     return res; 
    }) 
    .then((key)=>{ 
     return key.addProduct(req.body.products);//Create Products 
    }) 
    .then(respondWithResult(res, 201)) 
    .catch(handleError(res)); 
} 

모델 정의에서 기본값을 설정하여 아무 것도 전달하지 않아도됩니다.

'use strict'; 

export default function(sequelize, DataTypes) { 
    return sequelize.define('dict_Keys', { 
    _id: { 
     type: DataTypes.INTEGER, 
     allowNull: false, 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    type: { 
     type: DataTypes.INTEGER, 
     allowNull:false, 
     defaultValue: 0 // DefaultValue if nothing is passed 
    }, 
    },{ 
    tableName: 'Keys' 
    }); 
} 

그래서 귀하의 경우에는 내가이 당신을 도움이되기를 바랍니다

export default function(sequelize, DataTypes) { 
    return sequelize.define('UserSettings', { 
    _id: { 
     type: DataTypes.INTEGER, 
     allowNull: false, 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    YourColumnName: { 
     type: DataTypes.WhatYouWant, 
     allowNull:CaseYouNeed, 
     defaultValue: 0 // DefaultValue if nothing is passed 
    } 
} 


    export function create(req, res) { 
     return User.create(req.body)// Create a User 
     .then((res)=> { 
      UserSettings.create(
      //Create Associated Settings 
      //send with Values or without which the DefaultValues will handle 
) 
      } 
      return res; 
     }) 
     .then(respondWithResult(res, 201)) 
     .catch(handleError(res)); 
    } 

같은 수 있습니다.

+0

감사합니다. 나는 인스턴스가 생성 될 때마다 그것을 할 수있는 before/after hook의 더 많은 것을 찾고 있었다. – akanieski

관련 문제