2011-09-28 34 views
25

、私はリダイレクト/フラッシュメッセージ私のセッション制御装置においてruby​​ on railsフラッシュメッセージ - :alert:error:noticeと:success?私のコントローラーのいくつかで

redirect_to products_url, :notice => "message here", 
redirect_to states_url, :error => "oops!" etc... 

を持っている、しかし、認証が成功すると、私は フラッシュ持つ[を:成功] =「歓迎!」 redirect_to user

他のコントローラで のようにすることができます:成功=>「よろしく!」

これは主に美容/一貫性を目的としていますが、notice、:alert、およびerrorです。唯一のフラッシュタイプを利用できますか、追加のタイプを追加できますか?私は意味がありますか?

ありがとうございます!

答えて

52

私は変更することなく、これはあなたが買ってあげるほど近いと考えている。ここで

redirect_to user_path(@user), :flash => { :success => "Message" } 

はフレンドリーフラッシュ構文加えに関するいくつかのadditional notesです。

9

私はRailsの中に4アプリのコントローラでカスタムタイプを登録できることを発見した:

class ApplicationController 
    ... 
    add_flash_types :error, :another_custom_type 
end 

# app/controllers/users_controller.rb 
class UsersController < ApplicationController 
    def create 
    ... 
    redirect_to home_path, 
     error: "An error message for the user" 
    end 
end 

# app/views/home/index 
<%= error %> 

あなたがベースのフラッシュメッセージスタイルの異なる種類にアクセスする場合のメリットはhttp://blog.remarkablelabs.com/2012/12/register-your-own-flash-types-rails-4-countdown-to-2013

0

に行きますあなたのコントローラでアラートブートストラップ(成功、警告)、:

flash[:success] = "This works!" 

そして、あなたのレイアウトで(おそらくapplication.html.erb)

<% if success.present? %> 
     <p class="alert alert-success"><%= success %></p> 
    <% end %> 

警告と他のブートストラップアラートスタイルと同じことです。

関連する問題