2013-05-02 8 views
1

Я работаю над созданием потока активности для работающего клуба, с которым я работаю. Бегуны смогут увидеть все забавные и хорошие вещи, которые они и их друзья были в течение последних нескольких недель.Как подойти к агрегированию актов в фидах, а затем обрабатывать комментарии

Obie Fernandez дал отличный разговор о том, как подойти к этому, используя Redis на RailsConf 2012 (the videos on YouTube here), и я адаптировал его для работы в нашем приложении.

Запустив его на несколько дней, ясно, что моя следующая задача - собрать агрегированные элементы в этот список. Возьмем, например, следующий канал:

The feed as it's implemented

Здесь ясно, что верхняя история будет лучше свернуть в нечто вроде «Shaun, Александр и Иво завершил групповой Выполнить ...», но это несет в себе интересный вопрос, когда думаешь о комментариях. В настоящее время комментарий связан с действиями отдельных лиц, которые идут в бегах. Таким образом, комментарий о посещаемости Иво в беге направлен на него. В сворачивании истории я не совсем уверен, как обрабатывать комментарии. Это может быть комментарий, который затем распределяется среди всех людей, с которыми вы дружите, кто пошел в бег, но я вижу, что это очень быстро становится беспорядочным, когда у людей с разными группами друзей. Комментарии могут вместо этого просто напрямую ссылаться на сам запуск, но затем они теряют ценность, позволяя ссылаться на посещаемость конкретного пользователя.

Мне бы хотелось услышать мысли людей об этом и любые указатели на хорошие шаблоны дизайна для этого.

ответ

1

Я думаю о feed_item (для целей отображения) having_many feedables в полиморфных отношениях. То есть, многие вещи, которые могли бы создать feed_item (бег, езду на велосипед, подключающиеся к новому другу все будет feedable s и генерировать feed_item)

Прогон выше будет 3 проходит все связанные с одним feed_item , а feed_item будет иметь много comments, а не feedable (пробег или что-то еще).

Это изолирует МОЙ рекорд нашей группы от ВАШЕЙ записи нашей группы, поэтому, когда вы покидаете службу, мой пробег сохраняется, потому что feed_item все еще там, он просто потерял ваш feedable.

дозировочных их и ассоциирующиеся займут некоторую нечеткую логику, это другой вопрос, но, надеюсь, это поможет вам с комментированием и канонические источниками будучи feed_item, которая отделена от feedable с (бежит, велосипеды и т.д.)

+0

Звучит как хорошее начало наверняка. Я думаю о реализации чего-то подобного. Если кто-нибудь увидит это и получит больше ресурсов, пожалуйста, поделитесь. – Tashows