4

Hej、問題があります。Railsアプリでflash [:notice]を使用しています。ユーザーがページにアクセスして、新しいオブジェクトを作成します。フラッシュメッセージには「作成済み」と表示されます。今、彼はページ上のリンクをクリックします。ブラウザの「戻る」ボタンを使用して戻ってきた場合は、フラッシュマッサージが再度表示されます。flash.now [:notice]も機能しません(私は考えてテストしました)。問題は、ファイルの新しいレンダリングがないことです。

それを防ぐためのアイデアはありますか?ありがとう!

4

4 に答える 4

3

問題はフラッシュ変数ではなく、ブラウザのキャッシュです。このソリューションは、Rails 3.2 を使用してうまく機能しました (このスレッドHow to prevent browser page caching in 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
于 2013-02-11T20:09:14.170 に答える
2

私は一般的に以下を使用しました

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

破棄方法も使用できます

<% if flash[:notice] %>
  <%= flash[:notice] %>
  <% flash.discard(:notice) %>
于 2010-07-30T09:58:33.680 に答える
1

キャッシュを no-cache, no-store に設定すると、サーバーへの不要なリクエストが発生します。代わりに、ブラウザの localStorage / sessionStorage を使用して目的の効果を得ることができます。

ここに詳細な回答を書きました: https://stackoverflow.com/a/41921476/6590834

于 2017-01-29T13:36:53.517 に答える
0

破棄方法は知っていますが、問題は flash[:notice] の機能ではありません。問題は、ブラウザがファイルを再度レンダリングしないことです... JavaScript を使用して修正する必要があると思います...

于 2010-07-30T11:37:55.783 に答える