Rails 4.1 has a nice way to preview mailers with ActionMailer::Preview
. All of my mailers take a user
parameter, and I would like to pass in current_user
(from Devise) for the preview.
If I try this, it doesn't work.
class SubscriptionsMailerPreview < ActionMailer::Preview
# Preview this email at http://localhost:3000/rails/mailers/subscriptions_mailer/new
def new
SubscriptionsMailer.new(current_user)
end
end
It returns undefined local variable or method 'current_user' for #<SubscriptionsMailerPreview:0xa6d4ee4>
.
I suspect this is because current_user
is defined by Devise in ApplicationController
, and according to the docs, ActionMailer
uses AbstractController::Base
. In that case, would storing current_user
in a class variable be a bad idea?
Does anyone know how I can use the current_user
helper in ActionMailer::Preview
?