2012-01-30 14 views

Respuesta

29

No, como un tipo de flash puede usar cualquier símbolo, incluso el suyo.

+3

Como Steve Grossi señala a continuación, no puede pasar ningún símbolo a 'redirect_to' como en el ejemplo que usa cjm2671. – Nathan

75

Hauleth es correcto que se puede utilizar cualquier símbolo, pero en este momento, :notice y :alert son los únicos que se pueden pasar directamente en redirect_to (según flash.rb in Rails source), como usted menciona específicamente:

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

Si quieres un flash de tipo diferente, como :error (o :success), debe pasar a través de los de la llave :flash, así:

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

Para obtener información sobre cómo registrar sus tipos de flash personalizados para que, como :notice y :alert, puede pasar directamente a redirect_to, vea este stackoverflow Q & A: https://stackoverflow.com/a/3848759/995663

Actualización: Según this commit, parece que Rails 4 lo hará más fácil al permitirle registrar tipos de flash personalizados llamando al add_flash_types :error en ApplicationController.

+2

Rails 4 vías: http://stackoverflow.com/a/18642036/2148302 – sampi

+0

Hablando sobre el rendimiento o la forma correcta de lograr el mismo comportamiento, ¿cuál es la mejor manera de hacerlo? ** 1.- Agregar nuevos tipos de flash * * como con 'add_flash_types: error, ...' o ** 2.- Agregando nuevos hashes en el objeto Flash ** como con ': flash => {: error =>" ¡Oh, no! " } '? –

Cuestiones relacionadas