Подтвердить что ты не робот

Ember-data - "Попытка обработать событие" deleteRecord "на * записи *, находясь в состоянии root.deleted.saved."

Я пытаюсь использовать ember-данные в своем приложении для управления последователями/отношениями. У меня проблема, если пользователь попадает в режим включения/выключения ember throws "Попытка обработать событие deleteRecord находясь в состоянии root.deleted.saved". Кто-нибудь сталкивался с этим раньше?

Код действия ниже

    actions: {
    follow: function(model){
        var component = this;
        var store = this.get('targetObject.store');
        var session = this.get('targetObject.session');
        this.set('isFollowed', true)

        /* Follower Side */
        Ember.RSVP.hash({
            profile: store.find('profile', model),
            follower: session.get('currentUser.profile')
        }).then(function(rsvp){

            var follower = store.createRecord('follower', {
                profile: rsvp.profile,
                follower: rsvp.follower,
                status: 'approved'
            });


            var followed = store.createRecord('followed', {
                profile: rsvp.follower,
                followed: rsvp.profile,
                status: 'approved'
            });

            followed.save().then(function(savedFollowed){
                rsvp.follower.get('followeds').addObject(savedFollowed);                    
            });
            follower.save().then(function(savedFollower){
                rsvp.profile.get('followers').addObject(savedFollower);
            });


        })
    },

    unfollow: function(model){
        var component = this;
        var store = this.get('targetObject.store');
        var session = this.get('targetObject.session');

        this.set('isFollowed', false)

        /* Remove Follower Side */
        component.set('isFollowed', false)
        Ember.RSVP.hash({
            profile: store.find('profile', model),
            follower: session.get('currentUser.profile')
        }).then(function(rsvp){

            /* Delete Follower Side */

            var follower_id = rsvp.follower.get('id');
            rsvp.profile.get('followers').forEach(function(item){
                if(follower_id == item.get('followLink')){                        
                    item.destroyRecord();
                }
            })

            var profile_id = rsvp.profile.get('id');

            rsvp.follower.get('followeds').forEach(function(item){
                if(profile_id == item.get('followLink')){                        
                    item.destroyRecord();
                }
            })
        })
    }  
}

ОБНОВИТЬ

Я решил проблему - спасибо GJK за ответ. Для тех, кто сталкивается с этой проблемой, потому что я добавлял запись к родительским моделям "hasMany" с помощью "addObject" - когда я удалял запись, мне также нужно было удалить ее из этого отношения, чтобы ее не было в родителях "hasMany", и это снова появляется в цикле удаления. Короче говоря, решение заключалось в том, чтобы добавить "removeObject (item)", то есть..

item.destroyRecord(); 
rsvp.follower.get('followeds').removeObject(item);

item.destroyRecord();
rsvp.profile.get('followeds').removeObject(item)                        
4b9b3361

Ответ 1

root.deleted.saved означает, что ваша модель уже удалена, и это изменение сохраняется на сервере. Мое предположение было бы в том, что followers и followeds являются наборами пользователей, которые не обязательно не пересекаются.