# coding: utf-8

Глава 12 Слежение за сообщениями пользователей

В этой главе мы завершим ядро примера приложения, добавив социальный слой, что позволит пользователям читать (и не читать) сообщения других пользователей 27, в результате чего на главной странице каждого пользователя будет отображаться status feed (??) микросообщений тех пользователей, сообщения которых он читает. Мы также сделаем представления для отображения читающих и читаемых пользователей. Мы узнаем, как смоделировать слежение за сообщениями пользователей в Разделе 12.1, а затем сделаем веб-интерфейс в Разделе 12.2 (включая введение в Ajax). Наконец, мы закончим, разработав полнофункциональный status feed (??) в Разделе 12.3.

Эта последняя глава содержит несколько из наиболее сложных материалов учебника, в том числе, сложные модели данных и несколько Ruby / SQL хитростей для создания потока сообщений. С помощью этих примеров вы увидите как Rails может обрабатывать даже весьма сложные модели данных, что должно Вам пригодиться, так как вы двигаетесь к разработке собственных приложений с их собственными требованиями. Чтобы помочь с переходом от учебника к самостоятельной разработке, Раздел 12.4 содержит рекомендуемые расширения к ядру примера приложения, а также ссылки на более продвинутые ресурсы.

Как обычно, Git пользователи должны создать новую тему ветки:

$ git checkout -b following-users

Так как материал этой главы особенно сложен, прежде чем писать код, мы улучим момент и сделаем небольшой обзор функции слежения за сообщениями пользователей. Как и в предыдущих главах, на этом раннем этапе мы будем представлять страницы используя макеты. 1 The full page flow(??) работает следующим образом: пользователь, (John Calvin) начинает на странице своего профиля (Рис. 12.1) и переходит на страницу с пользователями (Рис. 12.2), чтобы выбрать пользователя, сообщения которого он будет читать. Calvin переходит на страницу профиля выбранного пользователя, Thomas-а Hobbes-а (Рис. 12.3), кликает по кнопке “Follow”, чтобы читать сообщения этого пользователя. Это изменяет кнопку “Follow” на “Unfollow”, и увеличивает количество “followers” товарища Hobbes-а на единицу (Рис. 12.4). Вернувшись на свою главную страницу, Calvin теперь видит увеличившееся количество “following” и обнаруживает микросообщения Hobbes-а в своем status feed (??) (Рис. 12.5). Остальная часть этой главы посвящена реализации этого page flow (??).

page_flow_profile_mockup

Рисунок 12.1: Макет профиля текущего пользователя. (полный размер)
page_flow_user_index_mockup

Рисунок 12.2: Макет поиска пользователя для чтения его сообщений. (полный размер)
page_flow_other_profile_follow_button_mockup

Рисунок 12.3: Макет профиля другого пользователя с “Follow” кнопкой. (полный размер)
page_flow_other_profile_unfollow_button_mockup

Рисунок 12.4: Макет профиля с “Unfollow” кнопкой и увеличившимся количеством читателей. (полный размер)
page_flow_home_page_feed_mockup

Рисунок 12.5: Макет главной страницы пользователя со status feed (??) и увеличившимся количеством читаемых пользователей. (полный размер)
# coding: utf-8