неопределенный метод cache_sweeper - PullRequest
1 голос
/ 31 декабря 2008

Я пытаюсь настроить кэширование на своем сайте, и у меня возникают проблемы с работой очистителя кэша. Я следовал за Railscast , но когда я пытаюсь загрузить страницу с моделью, я получаю ошибку. Вот что я сделал до сих пор:

1.) Добавил каталог app / sweepers и поместил в него базовый уборщик:

class TeamMemberSweeper < ActionController::Caching::Sweeper
  observe TeamMember

  def after_create(team_member)
    expire_nav_menus
  end

  def after_destroy(team_member)
    expire_nav_menus
  end

  private

  def expire_nav_menus(athlete_id)
    expire_fragment(...)
  end
end

2.) Добавьте следующую строку в модель TeamMember:

cache_sweeper :team_member_sweeper, :only => [:create, :destroy]

3.) Добавил следующую строку в config / environment.rb и перезапустил мой сервер:

config.load_paths += %W( #{RAILS_ROOT}/app/sweepers )

В этот момент, когда я получаю доступ к модели TeamMember, я получаю следующую ошибку:

undefined method `cache_sweeper' for #<Class:0x23128cc>

Что мне не хватало, чтобы заставить это работать?

1 Ответ

4 голосов
/ 31 декабря 2008

Я думаю, потому что

"cache_sweeper: team_member_sweeper,: only => [: create,: destroy]"

Должны указываться контроллеры, в которых вы хотите установить срок действия, а не модель.

Я столкнулся с подобными проблемами, потому что я специально ХОЧУ истечь из модели, но, очевидно, это невозможно или очень сложно сделать в Rails.

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