CurrentAttributes came out on Rails 5.2 allow us to control session variables, follow steps bellow
# frozen_string_literal: true
class Current < ActiveSupport::CurrentAttributes
attribute :request_id, :user_agent, :ip_address, :user, :request
end
# frozen_string_literal: true
module SetCurrentAttributes
extend ActiveSupport::Concern
included do
before_action do
Current.request_id = request.uuid
Current.user_agent = request.user_agent
Current.ip_address = request.ip
Current.request = request
end
end
end
class ApplicationController < ActionController::Base
include SetCurrentAttributes
end
Since mailer preview uses Rails classes and itself is required to add initializer configs to be able to set data coming from session request
# frozen_string_literal: true
Rails.application.reloader.to_prepare do
class Rails::MailersController
before_action :set_current_request
private
def set_current_request
Current.request = request
end
end
end
That will allow you to have all request with the mailers preview methods