Кэширование страниц в Rails на основе значения атрибута? - PullRequest
0 голосов
/ 15 июля 2011

У меня есть PagesController с действием show, которое в настоящее время выглядит следующим образом:

class PagesController < ApplicationController

  caches_page :show

  def show
    @page = Page.get_page(params)
  end

end

Модель «Мои страницы» имеет атрибут publish_datetime , и страница недоступна для общего доступапока publish_datetime не пройдет.Есть ли способ указать в Ruby, что страница не должна кэшироваться до тех пор, пока не пройдет publish_datetime ?

Справочная информация : В основном, есть люди, постоянно входящие и выходящиестраницы, редактирующей страницы до даты их публикации, так что это одна из причин, почему я не хочу, чтобы страница была кэширована.Тем не менее, я понял, что могу обновить страницу при обновлении, но предпочел бы этого не делать.Вторая причина в том, что у меня есть флаг с именем has_been_published? , который меняет внешний вид страницы.Если страница случайно кэшируется до того, как publish_datetime , has_been_published? никогда не будет вызвана, и страница не будет кэшироваться с надлежащим содержимым.

Спасибо за любую помощь!--Mark

1 Ответ

1 голос
/ 15 июля 2011

Вы хотите использовать кэширование действий вместо кэширования страниц, так что вы можете использовать before_filter (или ваши данные аутентификации), чтобы определить, следует ли отображать полную страницу или нет.

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