2013-10-03 10 views
5

In meinem Segel Anwendung (wirklich Neuling auf Segel), ich habe drei Modelle:
- Benutzer (E-Mail, Passwort)
- Gruppen (Name)
- Artikel (name)
Ich möchte, dass das Gruppenmodell als eine Viele-zu-Viele-Beziehung zwischen Benutzern und Elementen fungiert. Wie kann dies erreicht werden?Viele-zu-viele-Beziehung in Segeln

Ich benutze Segel 0.9.4, ich habe das Problem # 124 in Bezug auf die Beziehung gelesen, aber nicht wirklich verstanden, ob dies auf ein vorhandenes Modell (das auch seine eigenen Attribute über itemId und enthält) angewendet werden kann Benutzeridentifikation).

Antwort

1

Ab Sails.js v0.9.4 unterstützt das Framework noch keine Verknüpfungen.

Balderdash (Entwickler der Segel) haben festgestellt, dass beide Verbände und Transaktionen auf der Roadmap sind für eine Freigabe der Produktion und haben eine mögliche API in der #124 issue auf GitHub dokumentiert

Derzeit gibt es eine development branch von Wasserlinie (die ORM-Adapter, der Segel Anwendungen), die Verbände unterstützt, aber Sie können einige Probleme auftreten, wenn Dokumentation über die neue API

Vorerst suchen, werden Sie kreativ und suchen nach alternativen Möglichkeiten, müssen die Benutzer und Elemente verbinden

7

Wenn Sie auf den v0.10 Zweig wechseln, können Sie die folgende versuchen, hatte

// Users.js 
module.exports = { 
    tableName: 'user', 
    attributes: { 
     email: 'STRING', 
     password: 'STRING', 
    } 
    items: { 
     collection: 'item', 
     via: 'users', 
     through: 'useritem' 
    } 
} 

// Items.js 
module.exports = { 
    tableName:'item', 
    attributes: { 
     name: 'STRING' 
    } 
    users: { 
     collection: 'user', 
     via: 'items', 
     through: 'useritem' 
    } 
} 

// Groups.js 
module.exports = { 
    tableName: 'group', 
    tables: ['user', 'item'], 
    junctionTable: true, 

    attributes: { 
    id: { 
     primaryKey: true, 
     autoIncrement: true, 
     type: 'integer' 
    }, 
    user_items: { 
     columnName: 'user_items', 
     type: 'integer', 
     foreignKey: true, 
     references: 'user', 
     on: 'id', 
     via: 'item_users', 
     groupBy: 'user' 
    }, 
    item_users: { 
     columnName: 'item_users', 
     type: 'integer', 
     foreignKey: true, 
     references: 'item', 
     on: 'id', 
     via: 'user_items', 
     groupBy: 'item' 
    } 
    } 
} 

ich in this file durch den Code zu gehen, um herauszufinden, was los ist.

+0

Ich bekam immer 'TypeError: Kann die Eigenschaft 'JunctionTable' von 'undefined' damit nicht setzen. –

+1

Ich habe es! Nur zu bemerken, alles in kleinen Schritten (<- Ironie). https://gist.github.com/clouddueling/70cee9b67077bd93b228 –

Verwandte Themen