2013-10-03 14 views
5

Nella mia applicazione vele (veramente novizio di vele), ho 3 modelli:
- Utenti (e-mail, password)
- Gruppi (nome)
- Articoli (nome)
Mi piacerebbe che il modello di Gruppi agisse come una relazione molti-a-molti tra Utenti e Articoli, come può essere ottenuto?molti-a-molti in vele

Sto usando vele 0.9.4, ho letto il numero 124 riguardo alla relazione, ma non ho davvero capito se questo può essere applicato a un modello esistente (che contiene anche i propri attributi sopra itemId e ID utente).

risposta

1

A partire da Sails.js v0.9.4, il framework non supporta ancora le associazioni.

Balderdash (gli sviluppatori di vele) hanno dichiarato che entrambe le associazioni e le transazioni sono sul tracciato per un rilascio di produzione e hanno documentato una possibile API nel #124 issue su GitHub

Attualmente v'è una development branch di galleggiamento (la ORM adattatore che naviga usi) che supporta le associazioni, tuttavia è possibile riscontrare alcuni problemi quando alla ricerca di documentazione sulla nuova API

per il momento, si dovrà essere creativi e guardare in modi alternativi per collegare gli utenti e gli elementi

7

Se si passa al ramo v0.10, si può provare il seguente,

// 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' 
    } 
    } 
} 

ho dovuto passare attraverso il codice a this file per scoprire che cosa sta succedendo.

+0

Continuo a ricevere 'TypeError: impossibile impostare la proprietà 'junctionTable' di undefined con questo. –

+1

Ho capito! Basta notare DO TUTTO IN LOWERCASE (<- ironia). https://gist.github.com/clouddueling/70cee9b67077bd93b228 –

Problemi correlati