2012-04-23 4 views
1

Я пытаюсь отобразить вспышку, когда пользователь посещает страницу, которая благодарит их за посещение страницы, что дает им возможность разделить 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 %>&nbsp;<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

но сделал то же самое - показал флэш-сообщение на: показать и последующую страницу (в виде сообщения об ошибке).

ответ

1

попытка вспышки Теперь

def user_message 
    if current_user  
    flash.now[:page_visited] = "Thank you for visiting!" 
    end 
end 
Смежные вопросы