2017-06-21 7 views
2

私のアプリケーションでは、このようにユーザにメッセージを表示します。予告=> 'メッセージ' すべてが完璧:私は、redirect_toのroot_urlにユーザーをリダイレクトする場合Ruby on Railsブートストラップ警告ボックス

<% flash.each do |key, value| %> 
    <div class="alert alert-<%= key %> alert-dismissible"> 
     <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     <%= value %> 
    </div> 
<% end %> 

私は自分のアプリケーション

.alert-notice { 
    @extend .alert-warning; 
} 

の行を次のようしています。通知メッセージが表示されます。しかし、私がredirect_to root_url、:info => 'messages'を使ってユーザにダイレクトすると、メッセージは表示されません。私はコードをデバッグして、その状態が空であることを認識しました。

それは大丈夫です:

redirect_to root_url, :notice => 'messages' 

ここで問題です:

redirect_to root_url, :info => 'messages' 

任意の提案は?

ありがとうございました。

答えて

0

:inforedirectのvaildオプションではありません(:alert:noticeはそのように使用できます)。したがって、infoを使用するには、flashに直接割り当てる必要があります。

代わりにこれを試してみてください:

flash[:info] = 'messages' 
redirect_to root_url 

またはこの:

redirect_to root_url, flash: { info: 'messages' } 
+0

親愛なるdownvoterは、私は私の答えの欠点上の任意の洞察力に感謝します私はそれをより良くする機会があります。 – Gerry

2

をおinfoを使用する場合は、あなたができるだけ多くを追加することができますapplication_helper.rb

add_flash_types :info 

にこれを追加する必要があります余分なタイプ、たとえば

add_flash_types :info, :success, :warning, :danger 

エクストラ:

私はまた、あなたがRubyで新しいHAST記法に慣れることをお勧め

redirect_to root_url, info: 'messages' # instead of :info => ... 
+1

私は 'add_flash_types'、niceについて知らなかった。 – Gerry