2012-06-18 216 views
1

我在一個控制器中有一個create方法,並且在此控制器的末端我想要redirect_to另一個控制器/視圖。如何在第一個控制器完成並顯示下一個redirect_to視圖後顯示flash[:notice]將閃存散列從一個控制器傳遞到另一個控制器

這裏的第一控制器代碼:

if @list.save 
     redirect_to root_path, :notice => "Created!" 

我也注意到,它並沒有在這裏工作或者:

if @list.save 
    redirect_to root_path, :alert => "Created!" 

這裏的路徑文件:

root :to => 'sessions#new' 

回答

4

要通過一個額外的請求,堅持一個提示信息,你可以使用flash.keep - 從the flash section on Rails Guides

比方說,這個動作相當於root_url ,但您希望將此處的所有請求重定向到UsersController#index。如果動作 設置了閃存並在此處重定向,則在另一次重定向發生時,這些值通常會丟失 ,但您可以使用「保留」使其保留另一個請求 。

澄清:如果你失去閃光燈由於雙重定向該方案僅適用。

0

你試過這個嗎?

redirect_to(whatever_path, :notice=>"hello world") 

此外,您還可以使用:error

redirect_to(whatever_path, :error=>"hello error") 
+0

yes試過這個,但仍然不知道爲什麼它沒有顯示出來。 – locoboy

+0

您的佈局或視圖是輸出'flash [:notice]'還是'flash [:error]'? –

+0

我在application.html中有這個 ''%flash.each do | key,value | %>

<%= value %>
<% end %>' – locoboy

0

你在使用什麼版本的Rails?您使用的語法是一個相對較新的功能。嘗試做很長的路:

flash[:notice] = 'Created' 
redirect_to root_path 
+0

試過這個。不知道爲什麼它不會像這樣工作。 – locoboy

相關問題