J'ai un contrôleur nommé Administrator. Ce contrôleur a des actions sur les autres modèles. Lorsque j'essaie d'autoriser ces actions avec CanCan, j'obtiens cette réponse.CanCan - Méthode non trouvée trouvée pour une classe spécifique
<h1>
NoMethodError
in AdministratorController#preproduct_delete
</h1>
<pre>undefined method `find' for Administrator:Class</pre>
Le code du contrôleur commence par:
class AdministratorController < ApplicationController
load_and_authorize_resource
before_filter :authenticate_user!
def users
authorize! :users, "Users List"
@users = User.all
end
end
Le modèle de capacité a:
if user.admin? then :admin
can :users
end
La méthode authenticate_user!
:
# See ControllerAdditions#authorize! for documentation.
def authorize!(action, subject, *args)
message = nil
if args.last.kind_of?(Hash) && args.last.has_key?(:message)
message = args.pop[:message]
end
if cannot?(action, subject, *args)
message ||= unauthorized_message(action, subject)
raise AccessDenied.new(message, action, subject)
end
subject
end
J'ai essayé de supprimer load_and_authorize_r esource du contrôleur, mais quand une action est appelée, CanCan me redirige vers la page de connexion à chaque fois.
Merci beaucoup
Oui j'essaie avec: gérer,: tous et obtenir le même résultat. Merci – jgiunta