Rails 4.1 の新機能 - rochefort's blog を書いたときはスルーしていましたが
Ruby on Rails 4.1 Release Notes #2(Rails4.1の主な機能) - rochefort's blog でrelase notes見たら
便利そうだったので試してみました。
試してみます
Action Mailer、Modelなどを生成
$ rails generate mailer Notifier create app/mailers/notifier.rb invoke erb create app/views/notifier invoke test_unit create test/mailers/notifier_test.rb create test/mailers/previews/notifier_preview.rb
最後のところ!
test/mailers/previews/notifier_preview.rb
へんなのが出来ています。きっとこれです。
テスト用にモデルを準備します。
$ rails g model User name email $ rake db:migrate $ rails c User.create({name:'test', email:'test@example.com'})
ソース修正
# models/users.rb class User < ActiveRecord::Base def email_address_with_name "\"#{name}\" <#{email}>" end end
# views/notifier/welcome.text.erb Hi <%= @account.name %>, Thanks for joining our service! Please check back often.
# mailers/notifer.rb class Notifier < ActionMailer::Base default from: 'no-reply@example.com', return_path: 'system@example.com' def welcome(recipient) @account = recipient mail(to: recipient.email_address_with_name, bcc: ["bcc@example.com", "Order Watcher <watcher@example.com>"]) end end
なんということでしょう!
http://localhost:3000/rails/mailers から
http://localhost:3000/rails/mailers/notifier/welcome へ辿って行くと
mailのpreviewが見れます。
ああ、こら便利だわ。
補足
previewファイルの場所は、default testに置かれていますが
config.action_mailer.preview_path = "#{Rails.root}/lib/mailer_previews"
で変更可能なようです。