Javascript spine.js多对多关系?
我试图弄清楚spine.js是否支持模型之间的多对多关系,或者我是否通过将相关模型id存储在两侧的数组中来更好地实现某些东西 文档中的示例只显示了一对多情况下非常简单的示例,即使在这种情况下,我也没有变得更聪明,对我来说,脊椎关系的实现似乎非常有限。例如,我仍然不知道如何将现有实例添加到关系中,而不是创建新实例 我需要做的最简单的例子就是创建一个带有标签的典型博客。每个帖子都可以有很多标签,每个标签都可以有很多相关帖子。创建帖子时,我希望向帖子添加新的和/或现有的标签。我需要能够获得与特定标签相关的所有帖子Javascript spine.js多对多关系?,javascript,many-to-many,spine.js,Javascript,Many To Many,Spine.js,我试图弄清楚spine.js是否支持模型之间的多对多关系,或者我是否通过将相关模型id存储在两侧的数组中来更好地实现某些东西 文档中的示例只显示了一对多情况下非常简单的示例,即使在这种情况下,我也没有变得更聪明,对我来说,脊椎关系的实现似乎非常有限。例如,我仍然不知道如何将现有实例添加到关系中,而不是创建新实例 我需要做的最简单的例子就是创建一个带有标签的典型博客。每个帖子都可以有很多标签,每个标签都可以有很多相关帖子。创建帖子时,我希望向帖子添加新的和/或现有的标签。我需要能够获得与特定标签相
有没有人能让我走上正确的道路?我恐怕无法帮助您处理多对多关系,因为我目前正试图解决相同的问题,但对于现有实例,只要是一对多,您可以在hasMany、hasOne和belongsTo函数中添加外键作为可选参数(默认为“{className}\u id”)。这些示例有点误导,因为它们暗示您必须显式地向集合添加项,但实际上,关系是由外键定义的
class Parent extends Spine.Model
@configure 'Parent', 'id'
@hasMany 'children', 'Child', 'parent_id'
class Child extends Spine.Model
@configure 'Child', 'id', 'parent_id'
@belongsTo 'parent', 'Parent', 'parent_id'
parent = new Parent
child1 = new Child(parent_id: parent.id)
child2 = new Child(parent_id: parent.id)
@log parent.children().all() #[child1, child2]
@log child1.parent() is child2.parent() #true
就我所见,newchild(parent\u id:parent.id)
和parent.children().create()
相当于一回事,但我对SpineJS非常陌生,所以很容易出错
我认为已经有一些关于多对多关系的请求,但Alex MacCaw到目前为止拒绝了这些请求(我相信他不喜欢一般的关系概念,正在考虑将它们从spine中删除)将您的xxx\u yyy\u发货模型镜像到spine。模型
xxx.coffee include hasMany xxx_yyy_ship
yyy.coffee include hasMany xxx_yyy_ship
xxx::all_yyy -> ship.yyy for ship in @xxx_yyy_ship()
yyy::all_xxx -> ship.xxx for ship in @xxx_yyy_ship()
使用hasMany和一个中间船模型来模拟多对多关系。问题是spine中的关系实现是一个笑话。它实际上只做文档中所述的事情,一点也不做。完全缺乏真实世界的用例。因此,我结束了编写自己的关系包,它满足了我的需要。这是一个非常有用的链接is:是的……我觉得他开始实施它,然后认为这是个坏主意。我的情况相当简单,所以我现在选择了id数组解决方案,但如果它再次露出丑陋的脑袋,我可能会写一些合适的东西:)