Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Sails.js recursive model relation (https://javascript.ru/forum/server/47187-sails-js-recursive-model-relation.html)

melky 13.05.2014 09:24

Sails.js recursive model relation
 
Используемая версия фреймворка: 0.10.0-rc7

Чего хочется: хочу сделать рекурсивное определение для связей один-ко-многим и один-к-одномуp

Пример : есть модель "Человек". Атрибуты человека - имя. У человека могут быть дети. И у человека может быть родитель. "дети" и "родитель" - это тоже модель "Человек" .

Вот такое определение должно сработать для Sails.js:

module.exports = {

  // обзовём модель, дабы быть уверенными в ссылках
  identity: 'human',

  attributes: {

    // имя человека
    name: {
      type: 'string',
      required: true
    },

    // дети человека. тут массив
    childs: {
      collection: 'human', // массив моделей с identity 'human'
      via: 'parent' // дети распознаются через атрибут 'parent'
    },

    // родитель человека. тут просто ссылка
    parent: {
      model: 'human' // ссылка на модель с identity 'human'
    }

  }

};


... и проблема в том, что оно не работает :) при операции find выдаётся пустой массив результатов (хотя есть как минимум 3 экземпляра)

melky 15.05.2014 12:09

В общем, хз, что этот waterline от меня хочет, но я сделал по дедовскому методу (что-то подобное делали ещё в SQL).
Правда, теперь у "человека" нет детей, но есть родитель)
module.exports = {

  // обзовём модель, дабы быть уверенными в ссылках
  identity: 'human',

  attributes: {

    // имя человека
    name: {
      type: 'string',
      required: true
    },

    // родитель человека. тут PK
    parent: {
      type: 'string' // primary key модели 'human'
    }

  }

};


Часовой пояс GMT +3, время: 14:40.