J'ai récemment regardé autour de Rails et remarqué qu'il y a beaucoup de références à current_user
. Cela vient-il seulement de Devise? et dois-je le définir moi-même manuellement même si j'utilise Devise? Existe-t-il des conditions préalables à l’utilisation de current_user
(comme l’existence de sessions, d’utilisateurs, etc.)?
Réponses
Trop de publicités?Il est défini par plusieurs joyaux, par exemple, Devise
Vous aurez besoin de stocker l'utilisateur_id quelque part, généralement dans la session après la connexion. Cela suppose également que votre application possède et nécessite des utilisateurs, une authentification, etc.
Typiquement, c'est quelque chose comme:
class ApplicationController < ActionController::Base
def current_user
return unless session[:user_id]
@current_user ||= User.find(session[:user_id])
end
end
Cela suppose que la classe User existe, par exemple #{Rails.root}/app/models/user.rb
.
Mis à jour: évite les requêtes supplémentaires à la base de données lorsqu'il n'y a aucun utilisateur actuel.