Как добавить динамический раздел в нижний колонтитул всех моих представлений? - PullRequest
0 голосов
/ 03 марта 2012

Я унаследовал устаревшее Rails-приложение, написанное несколько лет назад и работающее на версии 2.x. Я все еще борюсь за то, чтобы сосредоточиться на некоторых основных понятиях Rails и ActiveRecord.

Я хочу добавить поток динамической активности внизу каждой страницы, перечисляя последние изменения, которые кто-то сделал.

Чтобы получить поток активности, у меня есть гигантский SQL-запрос doom. В моей базе данных postgres я превратил указанный запрос в простое представление базы данных (в основном, виртуальную таблицу только для чтения), которую я могу запросить так:

SELECT * FROM recent_activity LIMIT 4

Как правильно подготовить эти данные для использования в нижнем колонтитуле на каждой странице моего приложения?

Должна ли она иметь свою собственную модель? Собственный контроллер? Можно ли как-то включить это на каждой странице автоматически?

1 Ответ

0 голосов
/ 03 марта 2012

Вы должны предоставить некоторую переменную для макета представления с содержанием этого запроса. Быстрое и грязное решение, которое приходит на ум, состоит в том, чтобы использовать 'before_filter' в ApplicationController, т.е.

before_filter :get_footer

      def get_footer
        # do your sql query here and save it in an instance variable like @footer
      end

Это должно установить переменную @footer на требуемое значение и сделать ее доступной в представлении.

Затем вы можете добавить строку в глобальный макет приложения, которая содержит @footer (возможно, немного отформатировать вывод)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...