我有一個grails應用程序,其中我有屬於另一個域contactGroup的聯繫人。除了removeFromContacts方法,它似乎都工作正常。我正在使用以下代碼。代碼正常工作,但一次只從組中移除一個聯繫人。我甚至做了一些調試,並且foreach循環運行的次數與提供的聯繫人一樣多。沒有錯誤消息。任何想法可能是想錯了 -grails removeFrom一次只刪除一個
ContactGroup group = ContactGroup.findByIdAndOwner(params.groupId, user)
def contactIds = request.JSON.data.contact
contactIds.each {
Contact contact = Contact.findByContactIdAndOwner(it.contactId, user)
if(contact) {
group.removeFromContacts(contact)
}
}
你是否檢查'if'循環中的代碼是否正在執行,如果其中有數據? –
我假設這是包含在一個控制器動作,應該從給定的'ContactGroup'中刪除所有提供的'Contacts'。但是,每次調用控制器操作時,您的代碼只能刪除一個(大概是第一個)。如果我正確地理解了這個問題,我會在從組中刪除每一個後立即添加一個'group.save(flush:true failOnError:true)'。 –
@JarredOlson你的假設是正確的。它在控制器動作中,代碼只是刪除第一個。我不認爲group.save是必需的或將有所作爲。根據Grails doc,addTo和removeFrom方法不需要save方法。它們被自動保存。儘管如此,我也嘗試過,結果仍然一樣。只有第一個被刪除... – saurabh