Mi chiedevo come posso definire una classe capacità e servire quella classe capacità a seconda dell'utente che ha effettuato l'accesso.Rails Can Can Capacità Classe diversi modelli Devise
sto usando Admin attivo, Can Can e mettere a punto e ho creato con successo un utente e un modello AdminUser.
ho questo nel mio ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if (user)
can :manage, Item
end
end
end
Ora ho usato questa voce wiki per determinare che possiamo davvero definire un file personalizzato capacità e l'uso che al posto del ability.rb:
https://github.com/ryanb/cancan/wiki/changing-defaults
Ma quello che volevo fare è, in grado di utilizzare ability.rb se un "utente non-admin" è firmato in un costume e abilty se un utente admin viene effettuato.
Domanda laterale: Potrebbe essere eseguito in modo tale che non è necessario uno personalizzato e potrei impostare le autorizzazioni in un file ability.rb?
Ah, hai ragione. Non ho notato che avevi usato una classe separata per Utente e Amminente. Dovresti essere in grado di modificare la classe utilizzata da Active Admin, ma non essendo un utente di quel sistema, non sono sicuro di dove sia esattamente. Probabilmente dovresti controllare i tuoi inizializzatori. – jdl