ユーザーがページにアクセスしたときにフラッシュを表示して、友人と URL を共有するオプションを提供するページにアクセスしてくれたことに感謝します。ただし、フラッシュ メッセージはページに表示されますが (正しい)、次にアクセスするページに引き継がれます。これを最初のページにのみ表示するにはどうすればよいですか?
現在、メッセージを表示したいメソッド/ビューは次のとおりです。
def show
user_message
end
user_message は、私のアプリ コントローラーのメソッドです。
def user_message
if current_user
flash[:page_visited] = "Thank you for visiting!"
end
end
フラッシュ通知に (アプリのレイアウトに含まれている) パーシャルを使用します。
<% flash.each do |name, msg| %>
<% if name == :notice %>
<div class="alert-message block-message success" data-alert="alert">
<a class="close" data-dismiss="alert">×</a>
<%= msg %> <br />
</div>
<% elsif name == :page_visited %>
<div class="alert-message block_message warning" data-alert="alert">
<a class="close" data-dismiss="alert">×</a>
<strong><%= msg %><br><br></strong>
Let your friends and family know!<br /><br />
<!-- ShareThis Button BEGIN -->
<span class='st_facebook_large'></span>
<span class='st_twitter_large'></span>
<span class='st_plusone_large'></span>
<span class='st_sharethis_large'></span>
<!-- ShareThis Button END -->
</div>
<% else %>
<div class="alert alert-message error" data-alert="alert">
<a class="close" data-dismiss="alert">×</a>
<%= msg %>
</div>
<% end %>
<% end %>
:show ビューでは正しく表示されますが、次のページでユーザーがクリックしてメッセージを再度表示し、フラッシュの「エラー」形式を使用し、ShareThis リンクを表示しません (ただし、URL は表示されません)。とにかく共有してもらいたいものです)。
どうすればこれを修正できますか? user_message を before_filter に移動してみました
before_filter :user_message, :only => :show
しかし、それは同じことをしました - :show とその後のページにフラッシュメッセージを表示しました (エラーメッセージとして)。