ユーザーがページを訪問したときにフラッシュを表示しようとしています。そのページにアクセスして友だちとURLを共有するオプションを提供してくれてありがとうございます。ただし、フラッシュメッセージはページに表示されていますが(正しい)、次のページに移動します。これを最初のページにのみ表示するにはどうすればよいですか?2度表示のFlashメッセージ
今、私はメッセージのショーをしたい方法/ビューは次のとおりです。
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 %>
どうしたら正しく表示されるのですか? n:showビューが表示されますが、次のページでユーザーがメッセージをクリックして再び表示され、フラッシュの「エラー」形式が使用され、ShareThisリンクは表示されません(ただし、URLは共有したくないとにかく)。
これを修正するにはどうすればよいですか?ショーと(エラーメッセージなど)、後続のページ: - 私はbefore_filterすなわち
before_filter :user_message, :only => :show
にUSER_MESSAGEを移動しようとしたが、それは同じことをした上でフラッシュメッセージを示しました。