2015-08-06 4 views
1

Я хочу создать модельную модель модели для двух других моделей в SAILS.JS. Но во время компиляции я получаю сообщение об ошибке.Модельная ассоциация в парусах js

Эта модель user.js

module.exports = { 

    attributes: { 
    email: { 
     type: 'string', 
     required: true, 
     unique: true 
    }, 
    password: { 
     type: 'string', 
     required: true, 
    }, 
    google: { 
     model:'Google' 
    }, 
     facebook: { 
     model:'Facebook' 
    } 
    } 
}; 

Эта модель Google.js

module.exports = { 

    attributes: { 
     kind: 'string', 
     gender: 'string', 
     sub: 'string', 
     name: 'string', 
     given_name: 'string', 
     family_name: 'string', 
     profile: 'string', 
     picture: 'string', 
     email: 'string', 
     email_verified: 'string', 
     locale: 'string', 
     user:{ 
     model:'User' 
     } 
    } 
}; 

Эта модель Facebook.js

module.exports = { 

    attributes: { 
     name: 'string', 
     id: 'string', 
     user:{ 
      model:'User' 
     } 
    } 
}; 

И я получаю следующее сообщение об ошибке

/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/foreignKeys.js:104 
    throw new Error(error); 
     ^
Error: Trying to create an association on a model that doesn't have a Primary Key. 
    at ForeignKeys.findPrimaryKey (/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/foreignKeys.js:104:11) 
    at ForeignKeys.replaceKeys (/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/foreignKeys.js:53:27) 
    at new ForeignKeys (/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/foreignKeys.js:30:10) 
    at new module.exports (/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema.js:30:17) 
    at Waterline.initialize (/usr/lib/node_modules/sails/node_modules/waterline/lib/waterline.js:107:17) 
    at buildORM (/usr/lib/node_modules/sails/lib/hooks/orm/build-orm.js:52:15) 
    at Array.async.auto.instantiatedCollections (/usr/lib/node_modules/sails/lib/hooks/orm/index.js:203:11) 
    at listener (/usr/lib/node_modules/sails/node_modules/async/lib/async.js:490:46) 
    at /usr/lib/node_modules/sails/node_modules/async/lib/async.js:441:17 
    at _each (/usr/lib/node_modules/sails/node_modules/async/lib/async.js:46:13) 
    at Immediate.taskComplete (/usr/lib/node_modules/sails/node_modules/async/lib/async.js:440:13) 
    at processImmediate [as _immediateCallback] (timers.js:367:17) 
+1

Ну, через 2 минуты после отправки вопроса я увидел проблему. Я использовал атрибут id в модели facebook, который является атрибутом первичного ключа. Отсюда и ошибка. Решаемые. – praveensanap

+0

Вы можете оставить свой собственный ответ на вопрос. Это сделает ответ более очевидным для других. –

+0

спасибо за предложение. – praveensanap

ответ

1

Ну, через 2 минуты после отправки вопроса я увидел проблему. Я использовал атрибут id в модели facebook, который является атрибутом первичного ключа. http://sailsjs.org/documentation/concepts/models-and-orm/attributes

Отсюда ошибка. Решаемые.

+0

Это всегда бывает так. :) Просто FYI, если вы хотите обсудить любые проблемы Sails.js в реальном времени с другими пользователями, ознакомьтесь с нашей страницей Gitter. https://gitter.im/balderdashy/sails –

Смежные вопросы