Shortly before our winter break, I ran into the following error message while updating a mailer:
(object doesn't support #inspect)
Here’s the code:
def notify
mail(
from: 'me@...',
to: 'me+testing@...',
subject: 'it works',
body: 'hello world',
).deliver_now
end
end
What happened?
notify
has some expectations for how it should be used. Specifically, it’s expected to return a mail object. deliver_now
is a method you can call on a mail object, and doesn’t return a mail object. Attaching that deliver_now
to the mail()
meant that notify
was no longer returning a mail object.
Solution: return the expected object. I kicked out the deliver_now
and made sure notify
returned a mail object, then delivered that mail object:
Mailer.notify.deliver_now
Problem solved, mail created and delivered.