申し訳ありませんが、現在同じ問題を解決しようとしているため、多対多の関係についてはお手伝いできませんが、既存のインスタンスの 1 対多に関する限り、 hasMany、hasOne、および belongsTo 関数のオプション パラメータとしての外部キー (デフォルトは '{className}_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
私が見る限り、同じことにnew Child(parent_id: parent.id)
なりparent.children().create()
ますが、私はSpineJSにかなり慣れていないので、簡単に間違っている可能性があります...
多対多のリレーションシップに関するプル リクエストがいくつかあったと思いますが、Alex MacCaw はこれまでのところそれらを拒否しています (彼は一般的なリレーションシップのアイデアのファンではなく、スパインからそれらを削除することを考えていると思います)。