2016-11-01 2 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 다른 게시물을 찾으려고했지만 어쩌면 여기에 아직 물어 본되지 않았습니다.

어쨌든, 당신이 실패하는 이유는 프로젝트 필드가 작성시 필요하더라도 읽기 전용으로 표시되어 있기 때문입니다. 따라서 프록시는 사용자가 명확하게 지정 했더라도 프로젝트 필드를 따라 보내지 않습니다.

해결 방법은 새 레코드를 만들고 저장하기 전에 프로젝트 필드를 지속 가능으로 표시하기 만하면됩니다.

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

팁 주셔서 감사합니다. 내 검색에서 그걸 발견하지 못했습니다. 퍼미션 객체가 생성되기 전에 라인을 삽입하고 페이로드에서 데이터를보기 시작합니다. –

관련 문제