当用户访问感谢他们访问该页面的页面时,我尝试显示闪光灯,这样可以让他们选择与朋友分享网址。但是,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&#34; error&#34;格式并没有显示ShareThis链接(虽然网址不是我希望他们分享的那个)。
我该如何纠正?我尝试将user_message移动到before_filter,即
before_filter :user_message, :only => :show
但是做了同样的事情 - 显示了flash消息:show和后续页面(作为错误消息)。
答案 0 :(得分:1)
立即尝试闪存
def user_message
if current_user
flash.now[:page_visited] = "Thank you for visiting!"
end
end