2014-01-08 29 views
5

モデルのフィールド 'owner'を更新したいとします。所有者は、現在ログインしているモデルを作成しているユーザーを含むセッションからフェッチする必要があります。sails.js - モデルフックでセッションデータにアクセスするにはどうすればいいですか?

私はこのような何かをしたい:

Model = { 

    attributes: { 

    }, 

    beforeCreate(values,next) 
    { 
    var owner_user_id = req.session.user_id; 
    values.owner = owner_user_id; 
    next(); 
    } 
} 

答えて

6

あなたはライフサイクルコールバックはそれを行うには、適切な場所であることを確認していますか?実際にはそうではないからです。明日はあなたのモデルをCLIタスクまたはセッションレスの何かで使用する必要があるでしょうか?さらに、関連APIが登場すれば、これを行うより洗練された方法があるかもしれませんが、まだモデルの外にあります。したがって、私はあなたの参照を単純な値として取り扱い、アクション(ここではreq.sessionにアクセスできます)に設定し、他のプロパティと一緒にコンストラクタに渡します:

... 
// Controller code 
module.exports = { 
    index: function(req, res) { 
    // Whatever gets you the values... 

    values.owner = req.session.user_id; 
    Model.create(values, function(err, model) {...}); 
    }, 
    // Other actions 
} 
... 
関連する問題