Я пытаюсь отобразить вспышку, когда пользователь посещает страницу, которая благодарит их за посещение страницы, что дает им возможность разделить URL со своими друзьями. Тем не менее, флэш-сообщение отображается на странице (правильно), но затем переносится на следующую страницу, которую они посещают. Как я могу сделать это только на первой странице?Flash-сообщение, отображаемое дважды в Rails
Сейчас метод/вид, в котором я хочу сообщение показать это:
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 view, но на следующей странице пользователь снова нажимает на сообщение и использует формат ошибки «ошибка» и не показывает ссылки ShareThis (хотя URL-адрес не был бы тем, который я хотел бы, чтобы они делились так или иначе).
Как это исправить? Я попытался переместить user_message к before_filter т.е.
before_filter :user_message, :only => :show
но сделал то же самое - показал флэш-сообщение на: показать и последующую страницу (в виде сообщения об ошибке).