2012-01-30 9 views

Odpowiedz

29

Nie, jako typ flash można użyć dowolnego symbolu, nawet własnego.

+3

Jak wskazuje Steve Grossi poniżej, nie można przekazać żadnego symbolu do 'redirect_to', jak w przykładzie, który wykorzystuje cjm2671. – Nathan

75

Hauleth jest prawdą, że można użyć dowolnego symbolu, ale teraz, :notice i :alert są jedynymi można przekazać bezpośrednio do redirect_to (według flash.rb in Rails source), jak konkretnie wymienić:

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

Jeśli chcesz inny rodzaj lampy błyskowej, takie jak :error (lub :success), trzeba przejść przez te, w kluczu :flash, tak:

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

Aby uzyskać informacje na temat rejestrowania niestandardowe typy flash, tak, jak :notice i :alert, można przekazać je bezpośrednio do redirect_to, zobacz ten StackOverflow Q & A: https://stackoverflow.com/a/3848759/995663

Aktualizacja: Według this commit, wygląda na to, że Rails 4 to ułatwia, pozwalając rejestrować niestandardowe typy flash, dzwoniąc pod numer add_flash_types :error w ApplicationController.

+2

Rails 4 way: http://stackoverflow.com/a/18642036/2148302 – sampi

+0

Mówiąc o wydajności lub właściwej drodze do osiągnięcia tego samego zachowania, jaki jest najlepszy sposób na wykonanie: ** 1.- Dodawanie nowych typów flash * * tak jak w przypadku 'add_flash_types: error, ...' lub ** 2.- Dodanie nowych skrótów w obiekcie Flash ** tak jak w przypadku ': flash => {: error =>" O nie! " } '? –

Powiązane problemy