2012-04-23 7 views
1

ユーザーがページを訪問したときにフラッシュを表示しようとしています。そのページにアクセスして友だちと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 %>&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 %> 

どうしたら正しく表示されるのですか? n:showビューが表示されますが、次のページでユーザーがメッセージをクリックして再び表示され、フラッシュの「エラー」形式が使用され、ShareThisリンクは表示されません(ただし、URLは共有したくないとにかく)。

これを修正するにはどうすればよいですか?ショーと(エラーメッセージなど)、後続のページ: - 私はbefore_filterすなわち

before_filter :user_message, :only => :show

にUSER_MESSAGEを移動しようとしたが、それは同じことをした上でフラッシュメッセージを示しました。

答えて

1

今すぐお試しください。

def user_message 
    if current_user  
    flash.now[:page_visited] = "Thank you for visiting!" 
    end 
end 
関連する問題