Мой application.html.slim
шаблон выглядит следующим образом концептуально:Очистка кэша макета в приложении Rails
/ some stuff
= header()
/more stuff
= yield
/more stuff
= footer()
Теперь header()
и footer()
загружаются из внешнего источника, и они зависят от языка.
Я внедрил механизм изменения языка (на основе URL-адреса), поэтому header
и footer
будут загружены из другого источника сразу после изменения языка.
Моя проблема:
- Я запустить сервер
- загружает
http://myserver.dev/en
- Содержания, а также заголовок показаны на английском -> OK
- загружает
http://myserver.dev/de
- Теперь заголовок все еще находится на английском языке, пока контент находится на немецком языке ->Не в порядке
- Теперь заголовок и нижний колонтитул не изменятся, пока я снова не перезапущу сервер.
Так как я могу очистить кэш макета, так что footer
и header
повторно загружены.
Я попробовал следующее (но безрезультатно):
- Ручное удаление файлов кэша с диска (они до сих пор, кажется, в памяти)
Добавление следующие настройки в мой
application.rb
config.action_view.cache_template_loading = false config.action_controller.perform_caching = false
- Вызов
Rails.cache.clear
в каждый запрос - Попытка истекает отдельные частичный:
expire_fragment('external/_header.html.slim')
илиexpire_fragment(%r{external})
В чем смысл кеширования, когда он истекает для измененного языка (каждый запрос)?Если «change_language» не умный и не знает как пользовательский, так и предыдущий язык. – blelump
Вы правы, не имеет смысла в этой ситуации – gabrimac
Спасибо @gabrimac Я смог исправить проблему сейчас: http://stackoverflow.com/a/26833602/784318 – Besi