Я использую Devise для работы с пользователями в приложении для покупок.Я хочу создать новую корзину каждый раз, когда пользователь входит в систему (и в идеале, уничтожать одну и ту же корзину каждый раз, когда пользователь выходит из системы, но я просто придерживаюсь этой первой части для этого вопроса).
До сих пор я смотрел на этот вопрос: Разработать обратные вызовы
И я придумал это:
class ApplicationController < ActionController::Base
helper :all
protect_from_forgery
before_filter :fetch_categories
.
.
.
Warden::Manager.after_authentication do
session[:cart_id] ||= Cart.create!.id
end
end
... Но ясно этоне правильно, потому что я получаю эту ошибку:
NameError in Devise::SessionsController#create
undefined local variable or method `session' for ApplicationController:Class
Есть ли какой-то другой способ, которым я могу сказать контроллеру приложения, чтобы он отвечал на вход пользователя, или я должен поместить этот код в другом месте (кроме контроллера приложений)?Спасибо за любую помощь.