2012-07-05 9 views
12

Come posso ottenere tutti gli utenti con ruolo specifico quando si utilizza rolify? Ho provato la seguente, ma non ha aiutato:Trova tutti gli utenti con ruolo specifico utilizzando rolify

User.with_role :admin 

ottengo il seguente errore:

NoMethodError: undefined method `with_role' for #<Class:0x0000000743f9c0> 

Impossibile trovare un modo per fare questo.

+0

si è in grado di eseguire altre operazioni utilizzando rolify. – Bijendra

+0

@GhostRider Altre operazioni come l'aggiunta di un ruolo a un utente funzionano correttamente. – RomanKapitonov

+0

basta controllare i miei sotto .. dovrebbe risolvere il problema – Bijendra

risposta

23

È possibile utilizzare il metodo with_role con una classe utente per trovare tutti gli utenti che hanno un ruolo nella versione 3.1.0.

User.with_role :admin 
+0

con "where" @courriers = User.where.not (latitudine: nil, longitudine: nil) .with_role: Courrier –

8

mi piacerebbe chiedere il ruolo per la sua utenti

admins = Role.find_by_name('admin').users 

il metodo with_role è per una particolare istanza utente, non a livello di classe per tutti gli utenti. Se si desidera implementare che si sarebbe dovuto fare qualcosa di simile:

#not 100% on this code, haven't tested it, but you get the idea. 
User < ActiveRecord::Base 
    def self.with_role(role) 
    my_role = Role.find_by_name(role) 
    where(:role => my_role) 
    end 
end 
1

Avere lei ha citato resourcify nei modelli al fine di mettere ruoli in

class User < ActiveRecord::Base 
    resourcify 
end 

Con questo si può utilizzare with_role e metodi della classe find_roles.

+0

Cercando di farlo in questo modo si ottiene quanto segue: 'User Load (0.3ms) SELECT' users'. * FROM 'users' INNER JOIN" ruoli "ON" ruoli "." resource_type "= 'Utente' WHERE (roles.name = 'utente' AND roles.resource_type = 'Utente') => # ' – RomanKapitonov

+0

Questo problema è stato risolto, è sufficiente controllare questo https://github.com/EppO/rolify/commit/da1ec59acda83b9114aeb410c99b1ce6e0866648 – Bijendra

+0

@innocent_rifle anche controllare questo https://github.com/EppO/rolify/issues/65 – Bijendra

0

se avete bisogno di un adizionale "dove"

@courriers = User.where.not(latitude: nil, longitude:nil).with_role :Courrier 
Problemi correlati