Rails查询以确保数组不包含nil对象

时间:2014-05-16 03:26:55

标签: ruby-on-rails ruby-on-rails-4

我正在使用public_activity gem进行通知。我遇到一个问题,如果用户收到有关其帖子的新评论的通知,他们的通知会引发错误,因为该对象现在已经删除了。我可以通过<% if activity.trackable %>...render code...<% end %>确保可跟踪对象不为零来解决这个问题。但是,我还使用此查询显示他们在页面上的通知总数。

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

如何确保包含已删除trackable的任何活动。

实施例。用户1创建了一个帖子。用户2对该帖子发表评论。用户1有一个通知,其中显示&#34;用户2对此帖子进行了评论&#34;。 (帖子是帖子的链接)。用户1现在删除此帖子,但该活动已删除 。因此,当我查询通知计数时,将包括该活动,即使它不应该。

1 个答案:

答案 0 :(得分:0)

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