Вот так: пользователь может быть уведомлен, когда его тема будет перепечатана и понравится.Rails: как комбинировать уведомления обо мне?
Дилинг replies
прост. Когда создается один ответ, он создаст уведомление автору темы.
Однако, имея дело с likes
, всегда есть люди, которые это делают. Поэтому мне нужно объединить уведомления о симпатиях. Поэтому пользователь может быть уведомлен как Mike and 7 other have liked your topic
.
Проблема в том, что теперь я моделирую notification
как полиморфный.
class Notification < ActiveRecord::Base
belongs_to :user
belongs_to :subject, polymorphic: true # could be reply, likes and others
end
Так отношения идут как reply
->notification
->user
, что 1 к 1 к 1.
отобразить @notifcations
по @notifications.each
, перебирать их.
Но одно уведомление может представлять только одно (на subject_id
), этого слишком много для likes
, так как слишком много людей используют эту функцию.
Поэтому я хочу совместить уведомление. Как мне это сделать?
Я не понимаю, вам нужно просто получить количество уведомлений от ответа, например 'reply.notificaitons.size', и получить первого пользователя, который« понравился »? Таким образом, это будут два запроса: count + первый пользователь через тему. –
@DmitryPolushkin, Как вы показываете уведомления? Я делаю '@ notification.all.each', чтобы перебирать их. Но одно «уведомление» может представлять только одно (например, «subject_id»). Но это слишком много для 'любит', поскольку слишком много людей используют эту функцию. Поэтому я хочу объединить уведомление. Как мне это сделать? – cqcn1991
Вам нужно только подсчитать понравившиеся? например: «Notification.where (subject_type:« like », subject_id: SOME_ID) .size'? –