わかりました、これは奇妙なものです。
flash[:success] = 'some success message'
redirect_to :controller => 'media', :action => 'index'
リダイレクト後にメッセージが表示されます。リンクをクリックした後、またはアプリの別のページに移動した後 (最初のリダイレクト後) にもう一度表示されます。
わかりました、これは奇妙なものです。
flash[:success] = 'some success message'
redirect_to :controller => 'media', :action => 'index'
リダイレクト後にメッセージが表示されます。リンクをクリックした後、またはアプリの別のページに移動した後 (最初のリダイレクト後) にもう一度表示されます。
フラッシュの場合、最初に render と redirect_to を区別します。これは、フラッシュ メッセージはリダイレクト後にのみ削除されるためです。これで大丈夫です。
次に、リダイレクト後の次のリクエストでメッセージを表示する場合は、flash[] を使用します。現在のリクエストでメッセージを表示するには、flash.now[] を使用します。
これが役立つかどうかを確認してください。
本当に立ち往生している場合は、ビューでそれをクリアできます-そのような回避策のハックで技術的負債を積み込んでいます-しかし、時計が今刻々と過ぎている場合:
- flash.slice(:notice, :message, :error, :success, :warning, :failure).each do |level, value|
- if value.present?
%div{:class => "flash #{h level}"}
= h value
- flash[level] = nil # set to nil in case the flash was set outside of a redirect
また、view/layouts/application.html.erb ファイルにフラッシュ メッセージを含めないように注意する必要があります。それは起こるかもしれません:)