We are working on a conversion from 4.01 to 6.0.0. In our model system, on load we would have a "parent" field populated with the next level up. We did this by overriding HasOne and HasMany's read functions to populate this field.
Currently attempting to do the same thing with ManyToOne and OneToOne; copy the same logic in and when we get results, apply the parent record reference. This is happening on "Left" for both association.
There is already an extension of Base, BaseModel, that has a parent field to it.

Here is what the read for ManyToMany looks like now:

read: function(rightRecord, node, fromReader, readOptions) {
            var me = this;
            me.callParent([rightRecord,node,fromReader, readOptions]);
            var leftRecords = rightRecord[me.getStoreName()];
	    if (leftRecords && leftRecords.count()) {
	        for (i = 0 , len = leftRecords.count(); i < len; ++i) {
	            leftRecords.getAt(i).parent = rightRecord;
After having included this in my overrides and a similar logic for OneToOne, I end up missing the AssociationData from other models.
I am debugging in Chrome Dev tools and I can see the records and the raw data and the code being called.
  1. Where did I go wrong?
  2. Is there a better way of doing this?
Also, using this link as a reference.