Я пытаюсь настроить кеширование на своем сайте, и у меня проблемы с работой очистителя кеша. Я следил за Railscast, но когда я пытаюсь загрузить страницу с моделью, я получаю сообщение об ошибке. Вот что я сделал до сих пор:
1.) Добавлен каталог app / sweepers и помещен в него базовый sweeper:
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>
Что мне не хватает, чтобы это работало?





Я думаю, потому что
"cache_sweeper: team_member_sweeper,: only => [: create,: destroy]"
Должен входить в контроллеры, срок действия которых истекает, а не в модель.
Я столкнулся с подобными проблемами, потому что я специально ХОЧУ истечь из модели, но, очевидно, это невозможно или очень сложно сделать в Rails.
Ага - вы добавляете очистители кеша в контроллер, а не в модель.