J'ai implémenté l'authentification avec Authlogic et l'autorisation avec Acl9. Maintenant, j'essaie d'éviter plusieurs hits à la base de données pour vérifier si l'utilisateur est administrateur en gardant cela dans la session.Rails - Mise en cache ACL9 en session
Ce que je pensais que ce code devrait fonctionner:
class ApplicationController < ActionController::Base
...
helper_method :current_user_session, :current_user, :is_admin
...
private
def is_admin
return current_user_session[:is_admin] if defined?(current_user_session[:is_admin])
current_user_session[:is_admin] = current_user.has_role?(:admin)
end
Donc, fondamentalement, sur un premier appel à is_admin méthode d'assistance, il faut ajouter une valeur booléenne à session[:is_admin]
et pour toutes les autres appels, prendre de la session. Mais je reçois cette erreur:
undefined method `[]=' for #<UserSession: {:unauthorized_record=>"<protected>"}>
Et je suis resté ici. Qu'est-ce que je fais mal?