2016-11-10 5 views
1

I Benutzer Modell mit Devise erstellt haben, mit Typ: string Attribut und ein Adminuser Modell (AdminUser < User).Schienen, Devise. Verbieten Benutzeraktionen, es sei denn Adminuser

In Anwendungscontroller I definiert die : require_admin Methode:

def require_admin 
    unless current_user == AdminUser 
     flash[:error] = "You are not an admin" 
     redirect_to store_index_path 
    end 
    end 

On Produkte Controller I

gesetzt
before_action :require_admin, except: :show 

Jetzt habe ich eine Adminuser über Konsole erfolgreich erstellen (mit Adminuser-ID), und wenn Ich logge mich in die App ein, ich kann diese Aktionen immer noch nicht verwenden (erstellen, bearbeiten usw.).

Irgendwelche Ideen?

Antwort

1

Mit

current_user == AdminUser 

Sie prüfen, ob current_user Objekt zum AdminUser Klasse gleich ist.

Was wollen Sie stattdessen, ob current_user ‚s Klasse AdminUser ist zu überprüfen:

+0

Perfect! Der Fall ist geschlossen –

Verwandte Themen