Не удается прочитать свойство «determineRelationshipType» при попытке сохранить () модель с отношением hasMany

Я столкнулся с серьезной ошибкой при попытке сохранить запись с адаптером LocalStorage, который имеет отношение hasMany (с использованием Ember CLI). Я пытаюсь сохранить продукт в корзину, когда пользователь нажимает кнопку «Добавить в корзину». Я получаю эту ошибку в своей консоли:

Uncaught TypeError: Cannot read property 'determineRelationshipType' of undefined

Модель продукта:

import DS from 'ember-data';

export default DS.Model.extend({
  ...
  bag: DS.belongsTo('bag')

});

Модель сумки:

import DS from 'ember-data';

export default DS.Model.extend({
  products: DS.hasMany('product', {async: true})
});

Вот действие в контроллере:

import Ember from "ember";

export default Ember.ArrayController.extend({
  actions: {
    addToBag: function(model) {
      var bag = this.store.createRecord('bag');
      bag.get('products').then(function(products) {
        products.pushObject(model);
        bag.save();
      });
    }
  }
});

Кто-нибудь знает, что происходит не так? Или другой способ приблизиться к этому? Похоже, о подобной проблеме сообщалось здесь. Будем очень признательны за любую помощь! Заранее спасибо.


person Jeff E    schedule 11.10.2014    source источник
comment
Столкнулся с такой же проблемой, но решения пока не нашел. Эта проблема с Emberfire может быть связана с: github.com/firebase/emberfire/issues/123   -  person Caqu    schedule 11.10.2014


Ответы (2)


Я начал проект с помощью адаптера emberfire и столкнулся с той же проблемой.

Не вдаваясь в подробности, похоже, что ember-data beta.10 устарела — функция, необходимая для работы hasMany. (Дополнительное чтение https://github.com/firebase/emberfire/issues/123)

Переход на ember-data beta.8 решил проблему для меня.

Это необходимо до момента обновления адаптеров (emberfire и/или localstorage).

В моем проекте ember-cli я сделал:

rm -rf vendor/ember-data/ bower cache clean ember-data Измените файлы vendor/emberfire/bower.json и vendor/emberfire/.bower.json на "ember-data": "1.0.0-beta.8".

bower install

person Caqu    schedule 11.10.2014
comment
Я перешел на Ember Beta.8, и проблема была решена. Спасибо за ответ. Я надеюсь, что когда эта проблема будет решена в будущих версиях данных Ember. - person Jeff E; 12.10.2014
comment
было ли какое-либо обновление по этому поводу? Я снова попытался обновить Ember Data Beta.10, и возникла та же проблема. На данный момент я вернулся к 8, но хотел бы иметь возможность обновиться в какой-то момент. - person Jeff E; 17.11.2014
comment
Никаких обновлений с моей стороны. Вы можете отправить отчет об ошибке одному или обоим специалистам по сопровождению адаптера LocalStorage и Ember Data. - person Caqu; 18.11.2014

Я повторно исследовал эту проблему и похоже, что она была решена в недавнем обновлении ember-localstorage-adapter. В частности, была удалена ссылка на DS.RelationshipChange.

В моем bower.json я определил свою версию ember-data обратно к 1.0.0-beta.11, а также определил свою версию ember-localstorage-adapter к последней версии, 0.5.0. Вот соответствующая информация в файле bower.json:

{
  "name": "****",
  "dependencies": {    
    "ember": "1.8.1",
    "ember-data": "1.0.0-beta.11",
    "ember-localstorage-adapter": "~0.5.0",
  }
}

Эта ошибка больше не появляется!

person Jeff E    schedule 25.11.2014