2012-01-30 50 views

回答

29

不,作爲一種flash類型,您可以使用任何符號,甚至是您自己的符號。

+3

正如Steve Grossi指出的那樣,您不能像cjm2671使用的示例那樣將任何符號傳遞給'redirect_to'。 – Nathan 2015-04-22 18:04:51

75

Hauleth是正確的,你可以使用任何的象徵,但現在,:notice:alert是唯一可以(根據flash.rb in Rails source)通過直接redirect_to,你特別提到:

redirect_to path, :error => "Oh no!" # Will not work 

如果你想有一個不同的閃光類型,如:error(或:success),您必須通過:flash鍵傳遞的,就像這樣:

redirect_to path, :flash => { :error => "Oh no!" } 

有關如何註冊您的自定義閃存類型,因此,像:notice:alert,你可以直接到redirect_to通過他們,看到這個StackOverflow的Q &一個信息:https://stackoverflow.com/a/3848759/995663

更新:根據this commit,通過在ApplicationController中調用add_flash_types :error來允許你註冊自定義閃存類型,Rails 4會讓這更容易。

+2

Rails 4 way:http://stackoverflow.com/a/18642036/2148302 – sampi 2015-05-11 12:22:00

+0

談論性能或實現相同行爲的正確方法,最好的方法是:** 1.-添加新的flash類型* *與'add_flash_types:error,...'或**相同*在Flash對象**中添加新的哈希,如同使用':flash => {:error =>「哦,不! ''? – 2017-07-12 22:14:20