:alert czy :error?

Spotkałem się mniej wiecej po równo z tymi kluczami podczas zwracania flasha z błędem (Devise np używa :alert) .
Która jest rekomendowana obecnie ? A może panuje dowolność ?

Nie spotkałem się z jakimś przymusem, więc raczej dowolność, ale zdecydowanie częściej widuje error, chyba lepiej się kojarzy z błędem ;] W sumię można używać wszystkich 4, bo zamienniki na notice też widziałem, kwestia tylko poprawnego wyświetlenia ich i tyle.

Wolę error ale alert (i notice) został “pobłogosławiony” przez rails core team (od wersji 3.0):

Ogólnie to jest jakiś burdel z tym, ale ja się skłaniam ostatnio do :alter i :notice, tak jak w Railsach są wyżej wspomniane helpery.

alert jakos mało niebezpiecznie się kojarzy, dużo bardziej error pasował. No ale nic nie stoi na przeszkodzie jak pisałem by używać wszystkich, to kwestia ilu, dwóch linijek więcej, może nawet nie, by to obsłużyć.

Zgadza się, :alert i :notice zostały namaszczone, a od 3.0 można je ustawiać bezpośrednio w redirect_to.

[quote]It is also possible to assign a flash message as part of the redirection. There are two special accessors for commonly used the flash names alert and notice as well as a general purpose flash bucket.

Examples:

redirect_to post_url(@post), :alert => "Watch it, mister!" redirect_to post_url(@post), :status=> :found, :notice => "Pay attention to the road" redirect_to post_url(@post), :status => 301, :flash => { :updated_post_id => @post.id } redirect_to { :action=>'atom' }, :alert => "Something serious happened"
[/quote]

Z drugiej strony.

Jeśli przy np udanej aktualizacji rekordu korzystamy z :notice a w nieudanej chcemy zapisać we flash notkę, że się aktaulizacja się nie powiodła (z powodu walidacji) to raczej nie jest to błąd ( w rozumieniu błędu systemu ) tylko jego oczekiwane zachowanie i dlatego semantycznie bardziej może pasować :alert (bo to tylko alert dla użytkownika, że się nie udało), niż :error, który sugerowałby, że coś się spsuło w systemie i dlatego nie zadziałało.

Aczkolwiek filozofia to śliski grunt.

Należy używać notice i error. Inne symbole są niedozwolone i kto z innych korzysta ten słabym programistą jest.

Obczaj linka dodanego przez Radarka – najwyraźniej alert jest bardziej koszerny niż popularny error. (Chyba że #error była już wcześniej?)