Вспышка [: уведомление] снова отображается в браузере - PullRequest
2 голосов
/ 30 июля 2010

Хей, у меня проблема: Я использую flash [: note] в своем приложении rails. Пользователь заходит на страницу и создает новый объект. Flash-сообщение гласит: «Создано». Теперь он нажимает на ссылку на странице. Если он возвращается, используя кнопку «назад» своего браузера, флэш-массаж представляется снова. flash.now [: note] тоже не работает (думаю и проверял). Проблема в том, что нет нового рендеринга файла.

Есть ли у вас идеи, чтобы предотвратить это? Спасибо!

Ответы [ 4 ]

3 голосов
/ 12 февраля 2013

Проблема не в переменной flash, а в кешировании браузера. Для меня это решение хорошо работало с использованием Rails 3.2 (из этой темы Как предотвратить кэширование страниц браузера в Rails ):

в application_controller.rb:

before_filter :set_cache_buster

  def set_cache_buster
    response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
    response.headers["Pragma"] = "no-cache"
    response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
  end
3 голосов
/ 30 июля 2010

Я обычно использовал следующие

<% if flash[:notice] %>
  <%= flash[:notice] %>
  <% flash[:notice]=nil %>
<% end %>

вы также можете использовать сброс метод

<% if flash[:notice] %>
  <%= flash[:notice] %>
  <% flash.discard(:notice) %>
1 голос
/ 29 января 2017

Установка для кеша no-cache, no-store приведет к ненужным запросам к вашему серверу. Вместо этого вы можете использовать браузер localStorage / sessionStorage для достижения желаемого эффекта.

Я написал подробный ответ здесь: https://stackoverflow.com/a/41921476/6590834

0 голосов
/ 30 июля 2010

Я знаю метод сброса, проблема не в функциональности flash [: note], проблема в том, что браузер не отображает файл снова ... Думаю, мне нужно исправить это с помощью javascript.

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