2013-10-03 132 views
5

在我的帆的應用程序(真正的新手帆)關係,我有3種型號:
- 用戶(電子郵件,密碼)
- 組(名稱)
- 物品(名稱)
我希望組模型充當用戶和項目之間的多對多關係,這怎麼能實現?許多一對多在帆

我正在使用sails 0.9.4,我已經閱讀了關於關係的問題#124,但並不真正瞭解這是否可以應用於現有模型(它也包含自己的itemId頂部的屬性和用戶名)。

回答

1

從Sails.js v0.9.4開始,框架還不支持關聯。

夢囈(帆的開發者)都表示,兩個協會和交易的路線圖的正式版,並在#124 issue在GitHub上

已經證明可能API

目前有水線的development branch(中ORM適配器帆使用),支持關聯,但您可能要找的文件在新的API

現在時遇到的一些問題,你必須勇於創新,尋找替代性的方式給用戶和物品

連接
7

如果你切換到v0.10分支,可以嘗試以下方法,

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

我不得不去通過代碼this file找出到底是怎麼回事。

+0

我一直得到'TypeError:不能用這個設置'undefined'屬性'junctionTable'。 –

+1

我懂了!只是要記下小事(< - 諷刺)。 https://gist.github.com/clouddueling/70cee9b67077bd93b228 –