Вы можете просто переопределить SessionController от Devise, как я сделал, чтобы сохранить корзину:
sessions_controller.rb
class SessionsController < Devise::SessionsController
def destroy
order_id = session[:order_id]
super
session[:order_id] = order_id
end
end
routes.rb
devise_for :users, :controllers => { :sessions => "sessions" }