2011-11-16 2 views
1

J'utilise cancan et en essayant de l'obtenir pour limiter l'équipement montré pour une entreprise spécifique.toutes les requêtes par défaut aux utilisateurs société

J'ai une entreprise avec de nombreux utilisateurs qui ne devraient voir que les équipements appartenant à cette société.

Je pensais que cancan pourrait le faire à partir de cette:

Rails 3 company account with many users, restrict access to data

donc j'ai essayé ce code:

can :manage, Equipment do |equipment| 
    user.company == equipment.company 
end 

Dans le contrôleur de matériel que j'ai @equipment = Equipment.all que je pensais serait tout simplement tirer la équipement pour cette entreprise des utilisateurs, mais bien sûr, il les tire tous. Y at-il un moyen facile de le faire ou dois-je faire @equipment = Equipment.find_by_company_id(current_user.company) chaque fois que je veux tirer juste que l'équipement des entreprises. Pour aggraver cette situation, je veux finalement la décomposer par groupes et départements, mais je ne devrais pas avoir à me lancer dans d'autres requêtes plus importantes. Je suis ouvert à tout, plugins, suggestions, quel que soit le moyen le plus rapide pour y remédier.

J'aurais pu ajouter plus de code à cette question, mais je ne sais pas si l'ajout de tout cela aiderait vraiment la question.

Merci beaucoup

Toby

Répondre

2
+0

C'est ce que je reçois quand j'essaie que: 'L'appel accessible_by ne peut pas être utilisé avec un bloc 'peut' définition. Le SQL ne peut pas être déterminé pour: index –

+0

Peut-être que vous pouvez réécrire votre définition sans un bloc, comme ceci: 'peut: gérer, équipement,: company => user.company' –

+0

c'était tout, merci !!!! –

Questions connexes