chcę zmieniać klasę diva w zależności od zmiennej z kontrolera

chciałabym zmieniać klasę divów z wyświetlanymi komunikatami (flash[:notice]) w zależności od przekazanej w kontrolerze zmiennej (czyli np. sukces jak udało się wylogować, error jak próbuje ktoś wykonać niedozwoloną akcję). ale nie wiem jak przekazać zmienną do htmla, do

.
sądziłam, że zadziała coś takiego:
ale nie tym razem, tylko wyświetla się to samo. próbowałam też czegoś takiego
ale też nie działa, tym razem wyświetla się
. jak to zrobić?

edit: ok, chyba znalazłam sposób żeby to obejść, ale i tak chętnie się dowiem, czy da się tak robić bezpośrednio.

Drugie rozwiązanie powinno działać. Zmienna @type na pewno jest ustawiona? Swoja drogą może lepiej byłoby zrobić dwa divy - jeden dla :notice drugi dla :error i już odpowiednio je “ostylować”?

jest, w ten sposób:
def destroy
(…)
@type = “alert-success”
flash[:notice] = “Pomyślnie wylogowano.”
redirect_to root_url
(…)
end
może nie jest to poprawne…
w każdym razie właśnie na ten sposób z kilkoma divami wpadłam i chyba tak zrobię.

redirect_to powoduje skasowanie zmiennej @type. Wykład 7 :wink:

:smiley:

Zobacz sobie jak to np rayan rozwiazał w swoim szablonie nifty scaffold.

Wykład wykładem, ale czy to na pewno dobry pomysł, żeby ustawiać zmienna w kontrolerze tylko po to, żeby wyświetlić flash message ?

Kilka razy spotkałem się już z takim patternem (i sam używam) i działa bardzo ładnie.

- flash.each do |name, msg| = content_tag :div, msg, :id => "flash_\#{name}" if msg.is_a?(String)

<% flash.each do |name,msg| %> <%= content_tag :div, msg, :id => "flash_\#{name}" if msg.is_a?(String) %> <% end %>

Jak się czyta wątek od początku, to się widzi kontekst - chodziło tylko o to, dlaczego to rozwiązanie nie działa, a nie o to, czy to jest najlepsze z możliwych rozwiązań.

True true. Jak się czyta posty można również zauważyć, że ktoś świadomie robi offtop żeby roszerzyć kontekst i ukazać problem w szerszej perspektywie.

:slight_smile:

:slight_smile: