Tabele w bazie - porównanie warunkowe

MAM tabele w bazie danych o nazwie users a w niej kolumne o nazwie status w której występuje wartość albo user albo admin

Witam jak zbudować warunek o nastepujacej zawartosci:

jeśli wartość kolumny STATUS jest równa USER to przekieruj do widoku user.rhtml
jeśli wartość kolumny STATUS jest równa ADMIN to przekieruj do widoku admin rhtml

czesc gigione *

w kontrolerze odpowiedzialnym za to przekierowanie wpisujesz tak:

case @current_user.status when "admin": redirect_to :action => "admin" when "user": redirect_to :action => "user" else redirect_to :action => "index" end
lub tak:

if @current_user.status.eql?("user") redirect_to :action => "user" elsif @current_user.status.eql?("admin") redirect_to :action => "admin" else redirect_to :action => "index" end
zakladam, ze uzytkownik jest zalogowany i mozna go znalesc pod @current_user, np.:

@current_user = User.find(id_zalogowanego_uzytkownika)
  • przeczytaj jakas ksiazke do railsow, nie ma co sie ‘szarpac’ z takimi ‘problemami’

Ogarnalem Agile tylko ze chyba troche za szybko i malo mi zostalo w glowie, wiec jak cos to musze do niej znowu zerkac i ogarniac to od nowa, albo prosic Was o pomoc.
Dzięki za pomoc zaraz to przetestuje

Dla sprostowania, użytkownik dopiero się loguje, wcześniej podczas rejestracji osoby zaznacza sie odpowiedni radial admin lub user, potem przy logowaniu i na podsawie jego loginu i wartosci w kolumnie status jest on przekierowywany odpowiednio na strone admina jesli ma status admin lub na strone usera jesli jest tylko userem.

działa :wink: tylko że w takiej formie, bo osoba dopiero sie loguje:

if user.status.eql?(“user”)
redirect_to :action => “user”
elsif user.status.eql?(“admin”)
redirect_to :action => “admin”
end

Ogólnie dobrze kombinowałem tylko zapomniałem o .eql? :wink: