当用户访问一个页面时,我试图显示一个 Flash,感谢他们访问该页面,这使他们可以选择与他们的朋友分享 URL。但是,Flash 消息显示在页面上(正确),但随后会转移到他们访问的下一页。我怎样才能在第一页上只显示这个?
现在,我想要显示消息的方法/视图是:
def show
user_message
end
user_message 是我的应用程序控制器中的一种方法:
def user_message
if current_user
flash[:page_visited] = "Thank you for visiting!"
end
end
我使用部分(包含在我的应用程序布局中)作为我的 Flash 通知:
<% 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 视图上正确显示,但在下一页上,用户单击消息再次显示并使用 flash“错误”格式并且不显示 ShareThis 链接(尽管 url 不会无论如何我都希望他们分享)。
我该如何纠正?我尝试将 user_message 移动到 before_filter 即
before_filter :user_message, :only => :show
但这做了同样的事情 - 在 :show 和后续页面上显示 flash 消息(作为错误消息)。