2014-05-16 2 views
0

알림에 public_activity gem을 사용하고 있습니다. 나는 사용자가 자신의 게시물에 대한 새로운 코멘트에 대해 알게되면 삭제 된 이후 해당 오브젝트가 이제는 없으므로 알림이 오류를 발생시키는 문제에 직면하고 있습니다. 나는 추적 할 수있는 객체가 <% if activity.trackable %>...render code...<% end %>으로 nil이 아닌지 확인함으로써이 문제를 해결할 수 있습니다. 그러나이 쿼리를 사용하여 페이지에있는 총 알림 수를 표시하고 있습니다. 레일에 배열에 nil 객체가 포함되어 있지 않은지 확인하려면

PublicActivity::Activity.order('created_at DESC').where(recipient_id: current_user, kind: "Notification", read: false).where('owner_id not in (?)', current_user).size 

어떻게이 그것을 하지trackable가 삭제 된 모든 활동을 포함하지 있는지 확인 얻을 수 있습니다.

Ex. 사용자 1이 게시물을 만들었습니다. 사용자 2가 게시물에 댓글을 달았습니다. 사용자 1에게는 "사용자 2가이 게시물에 댓글을 달았습니다"라는 알림이 하나 있습니다. (게시물은 게시물에 대한 링크 임). 사용자 1이 이제이 게시물을 삭제하지만 활동에 이 아니라이 삭제되었습니다. 따라서 알림 수를 쿼리하면 해당 활동이 포함되지 않습니다.

답변

0
<% if !activity_trackable.nil? %> 
    you can add the code that gets the count here 
<% else %> 
    <%= 0 %> 
<% end %> 
+0

이 질문에 대한 답변이 없습니다. 수를 얻기 위해 쿼리에 뭔가를 포함해야합니다. 첫 단락을 읽으면 이미 다른 방법으로이 일을하고 있습니다. 질문은 쿼리에 무언가를 포함시키는 방법을 묻습니다. 감사. – tMTboss

+0

게시물에 대한 업데이트를 참조하십시오. –

관련 문제