如果post
已经取得了/user
,和我的数据模型表示,以往用户必须拥有一个group
,如何成功创建一个user
,我会触发在sails.js中创建一个新的group
?对于这个问题,我怎样才能从像afterCreate
这样的生命周期回调或通过其他方式进入另一个控制器?触发从Sails.js的创建另一个资源的创建
0
A
回答
1
您不能在模型内部调用控制器,这会违反MVC模式。您可以通过创建组
Group.create(obj)
或将您的创建逻辑放入服务中。
1
听起来好像你可能会混淆模型和控制器,如果你是Sails的新手,很容易做到,因为它提供了蓝图蓝图。也就是说:您不需要GroupController
来创建Group
模型实例,并且GroupController.create
是而不是以编程方式创建新的Group
的正确方法。 GroupController.create
是一种在您POST
到/group
之间自动调用的方法,因为Sails已在该位置设置了“蓝图”创建操作。
以编程方式创建Group
的正确方法是使用Group
模型类的create
方法,该方法在Sails应用程序中全局可用。因此,在您afterCreate
,你可以有:
afterCreate: function(values, cb) {
Group.create({user: values.id}).exec(cb);
}
注意帆(v0.10.0-RC5)的最新版本支持嵌套造成的,因此,如果您已经定义User
和Group
是associated对方,你可以只POST
这样的事情/user
:
{
name: "Joe Blow",
age: 25,
group: {
name: "Joe's group"
}
}
和组将被创建并自动与用户相关联。如果您使用主键POST
嵌入式Group
,它将使用该键搜索现有组并将其链接到新的User
而不是创建新的Group
。
+0
这是一些非常好的信息,谢谢。不过,我确实不得不接受其他答案,因为它确实回答了这个问题。 – bearfriend
相关问题
- 1. 创建触发器从另一个表
- 2. 发布到一个资源的URL以创建另一个不同的资源
- 3. 从资源创建一个CBitmap ID
- 4. 在Oracle中创建一个触发器,它从另一个表
- 5. 创建一个新的角度$资源
- 6. 如何创建触发器从另一个表中的数据
- 7. Android:从资源创建NinePatchDrawable
- 8. 创建从另一个
- 9. 创建从另一个
- 10. 创建从另一个
- 11. 创建一个事件触发Outlook上的提醒创建
- 12. 不创建资源的POST
- 13. WPF - 创建使用资源风格的触发器
- 14. Oracle - 创建更新另一个表的触发器的问题
- 15. 如何创建sails.js
- 16. MySQL如何创建一个从另一个表中选择的触发器?
- 17. 创建一个触发器,从phpMyAdmin中的另一个表中获取信息
- 18. 用模型创建一个sails.js钩子
- 19. jQuery的动态创建div来触发另一个功能
- 20. 创建触发器在另一个表中插入的行
- 21. 创建另一个
- 22. 从另一个类创建的数据创建var
- 23. 从资源触发资源
- 24. 创建触发器
- 25. 创建触发器
- 26. 创建触发器
- 27. 创建无触发
- 28. 触发后创建
- 29. 创建触发器
- 30. 创建从源
我实际上并不想创建一个INSIDE模型组,我只想进入Group控制器。你是否说'Group'(因此'Group.create()')在我的'User'模型中可用? – bearfriend