2016-11-01 6 views
1

Я пытаюсь создать новые разрешения для проекта для пользователя/проекта, но сохранение не выполняется, потому что «Нет действительного проекта». При просмотре сетевых журналов RequestPayload в вызове сервера пуст ({«ProjectPermission»: {}}). Есть идеи?Не удалось сохранить разрешение

_addViewPermission: function() { 
     this.getModel().then({    
      success: this.createPP, 
      scope: this 
     }).then({       
      success: this.readPP, 
      scope: this 
     }).then({       
      success: function(result) { 
       console.log('success', result); 
      }, 
      failure: function(error) { 
       console.log('oh noes!', error); 
      } 
     }); 
    },    

    getModel: function() { 
     return Rally.data.ModelFactory.getModel({ 
      type: 'ProjectPermission' 
     }); 
    }, 

    createPP: function(model) { 
     var permission = Ext.create(model, { 
      Project: "/project/51063976712", 
      Role: 'Viewer', 
      User: "/user/43049588391" 
     }); 

     return permission.save(); 
    }, 

    readPP: function(permission){ 
     console.log(permisson); 
     return permission.self.load(permission.getId(), { 
      fetch: ['Project', 'User', 'Role'] 
     }); 
    } 

ответ

1

Это давний странный дефект в AppSDK - извините, что он сработал! Я попытался найти на нем еще одну запись stackoverflow, но, возможно, этого еще не задали.

В любом случае причина, по которой вам не удается, заключается в том, что поле Project отмечено как readonly, даже если оно требуется для создания. Таким образом, прокси никогда не отправляет по проекту поля, даже если вы четко указали его.

Обходной путь состоит в том, чтобы просто отметить поле проекта как устойчивое, прежде чем создавать и сохранять новую запись.

model.getField('Project').persist = true; 
+0

Спасибо за отзыв. Я тоже не нашел этого в моих поисках. Я вставил строку до создания объекта разрешения и начал видеть данные в полезной нагрузке. –

Смежные вопросы