Home

Preview Emails in Rails

Rails 4.1 introduced the ability to preview email messages from your mailers without sending an email. Learn how ...

As of Rails 4.1, you can now preview emails while developing (without sending an email). Let's say you have a mailer that looks like this:

app/mailers/notification_mailer.rb

class NotificationMailer < ActionMailer::Base

def welcome(user)
@user = user
mail :to => user.email, :from => 'me@mydomain.com',
:subject => 'Welcome!'
end

end

To preview it, create a file in test/previews and call the mailer method just as you would from any model or controller in your app.

test/previews/notification_preview.rb

class NotificationPreview < ActionMailer::Preview

def welcome
NotificationMailer.welcome(User.first)
end

end

Then you can preview the email at [/rails/mailers/notification/welcome](http:// rails/mailers/notification/welcome).

Notice the preview route matches the preview class name and then preview method, which doesn't necessarily need to be related to the mailer itself.

Also note the preview filename is appended with _preview.

Let's Connect

Keep Reading

Why I Don't Use has_and_belongs_to_many in Rails

The magic of Rails makes it easy to create simple many-to-many relationships, but I almost never use it, and here's why.

Mar 31, 2015

Transition Between Database Adapters in Rails

Transitioning from one database to another, or even to a whole new database with a new adapter, can be tough. Here's an easy way to transition content.

May 25, 2015

Order Rails Query by Virtual Attribute

Rails' scopes don't work well with virtual attributes since they resolve to a SQL query. Instead you can throw them in an array and then sort by a virtual attribute.

Oct 22, 2014