我有一个这样的模式:
Question { id, user, ... }
Answer { id, user, question, ... }
我想允许发布答案的用户或父问题删除答案。我该怎么做?
如果userId
参数是Answer.user.id
或Answer.question.user.id
,我想删除一个Answer
。
当前实现如下所示
Answer.destroy({ id: id, user: loggedInUserId })
它只允许答案的所有者删除他的答案。缺少问题发帖人可以删除其问题下的任何答案的部分
Answer.destroy({ id: id, user: loggedInUserId })
将查询用户使用 loggedInUserId
编写并具有给定id
的Answers
,并将销毁它找到的。为了实现您要做的事情,考虑到您知道答案的id,您应该执行以下操作:
Answer.findOne({id: answerId}).populateAll()
.exec(function(err, answer) {
if (answer.user.id == loggedInUserId || answer.question.user == loggedInUserId) {
answer.destroy(callback);
}
});
考虑到answer
是您要销毁的Answer
实例。