Rails utilise activement les cookies, notamment pour gérer les sessions (variable @session). Si l'utilisateur a désactivé les cookies dans son navigateur, on se retrouve alors face à de nombreux problèmes. Pour y pallier, on se propose de forcer l'utilisateur à activer ses cookies.

On définit une fonction de vérification dans son contrôleur :


 def cookies_required
    if @request.cookies["_session_id"].to_s == ''
      if @params[:cookies_enabled].nil?
        redirect_to :controller=>@params[:controller],
        :action=>@params[:action],
        :cookies_enabled=>"testing"
      else
        render :text=>"Vous devez activer les cookies pour utiliser ce site!"
      end
    end
  end

Puis on l'applique avant chaque action grâce à before_filter :


  before_filter :cookies_required