Sessions not persisting
I'm recoding an existing e-commerce (built in Rails 4) with Jumpstart (Rails 6), and it seems that in Jumpstart, the session (on which depend current_order) does not persist between user requests, which breaks pretty much everything when the unconnected user is using it.
Here is my application_controller.rb
Here is my application_controller.rb
helper_method :current_order
def current_order
if !session[:order_id].nil?
if Order.find(session[:order_id]).is_completed
Order.new
else
Order.find(session[:order_id])
end
else
Order.new
end
endHere is what I found that might be the source of my problem, but don't know what I should do -
the app/application_cable/connection.rb file :
module ApplicationCable
class Connection < ActionCable::Connection::Base
include SetCurrentRequestDetails
identified_by :current_user, :current_account
delegate :session, to: :request
def connect
self.current_user = find_verified_user
set_request_details
self.current_account = Current.account
logger.add_tags "ActionCable", "User #{current_user.id}", "Account #{current_account.id}"
end
protected
def find_verified_user
if (current_user = env["warden"].user)
current_user
else
reject_unauthorized_connection
end
end
def user_signed_in?
!!current_user
end
# Used by set_request_details
def set_current_tenant(account)
ActsAsTenant.current_tenant = account
end
end
endMy guess is that
delegate :session, to: :requestcreates a new session each time the unconnected user makes a request?
If yes, how to fix it without breaking other part of the jumpstart app that might need it to work properly?
Many thanks!
Notifications
You’re not receiving notifications from this thread.