Cannot read property 'has' of undefined


#1

I like to try the new ember-data canary serialize: true but get Error while processing route: pages.index Cannot read property 'has' of undefined TypeError: Cannot read property 'has' of undefined

What is ‘has’?

Code that gives me this error:

I hope someone can point me in the right direction.


#2

It’s due to some change that happened in ED after beta.18. Perhaps there is a bug in ember-pouch due to the ember-data changes. It seems to not throw this error on 18 but does on 19.1 and 19.2


#3

We have Pouch in production with 19.2 but have not seen this error. Have you tried it with my code. I like to know if the new serialize: true works on the hasMany. Perhaps the has in the error is from this hasMany?


#4

The same exception happens here with ember-pouch 2.0.1 and Ember(-Data) 1.13.0. The data schema that brings up the error is:

DS.belongsTo('somethingElse', {async: true}):

without the serialize: true attribute. The code line where things goes wrong looks like

if (!Ember.get(type, 'attributes').has('rev'))

in ember-pouch.

The type in Ember.get(type, 'attributes') should be an model object, but actually is a string when an relationship is used inside your model. I think this needs some investigation on the ember-pouch side.


#5

After looking into the code for a while now I found out that the ember-pouch adapter iterates over the relationships of a model with help of DS.Model.eachRelationship. Each time an init method is called with the passed in descriptors type attribute.

The documentation states, that the type attribute is a model, but actually appears to be a string. This looks to me like a bug in Ember-Data.


#6

Thanks. I have looked to and why my ember-data 19.2 in production does not give me this error. It tuns out we don’t use hasMany in that project. If it is an ember-data thing how do we report it?


#7

I reported it here. Let’s see, what happens.