2012-01-30 61 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