2011-11-18 3 views
-1

을 컬렉션에서 제거하려고하는데, 작동하지 않는 EntityCollection은 예외로 나타납니다. list.remove(x): x not in list.Elixir EntityCollection.remove()가 작동하지 않습니다.

코드 발췌 다음은 :

user.platformSubscriptions.remove(platform)

플랫폼 변수는 platformSubscriptions 컬렉션에서 사실입니다.

+0

'platform'는'platformSubscriptions' 컬렉션이 아니어야합니다. 우리가 당신을 도울 수있는 스택 추적 및 추가 코드를 게시하십시오. – wberry

+0

@wberry 감사합니다. 사실 당신이 맞습니다. 그러나 더 구체적으로는 같은 레코드의 개체인데도 ** 인스턴스 **가 아닙니다. 따라서 기본 비교기는 목록에서 일치하는 항목을 찾지 못합니다. – ronalddddd

답변

0

플랫폼 개체에 대해 적절한 비교 기능이 없기 때문에 작동하지 않는 이유가있을 수 있습니다. 그래서 해결책은 id 필드를 비교하여 platform의 일치를 찾을 수 platformSubscriptions을 통해 루프입니다 :

for subedPlat in user.platformSubscriptions: 
    if subedPlat.id == platform.user.platformSubscriptions.remove(subedPlat)