O Rails Email Preview nos ajuda a visualizar rapidamente o e-mail no navegador da web em modo de desenvolvimento.
1) Adicionar “gem ‘rails_email_preview’, ‘~> 0.2.29’ “
ao arquivo gem e instale o pacote.
2) Executar “rails g rails_email_preview:install”
este inicializador de cria na pasta de configuração e adicione rotas.
3) Execute “rails g rails_email_preview:update_previews”
esta pasta crates mailer_previews no diretório do aplicativo.
O Generator adicionará um esboço a cada um de seus e-mails e, em seguida, preencherá o esboço com dados simulados.
Ex:
class UserMailerPreview
def invitation
UserMailer.invitation mock_user(‘Alice’), mock_user(‘Bob’)
end
def welcome
UserMailer.welcome mock_user
end
private
def mock_user(name = ‘Bill Gates’)
fake_id User.new(name: name, email: “user#{rand 100}@test.com”)
end
def fake_id(obj)
obj.define_singleton_method(:id) { 123 + rand(100) }
obj
end
end
4) Os parâmetros na consulta de pesquisa estarão disponíveis como uma variável de instância para a classe de visualização. Ex: se tivermos uma URL como
“/emails/user_mailer_preview-welcome?user_id=1”
@user_id
está definida no método de boas-vindas UserMailerPreview
isso nos ajuda a enviar e-mail para um usuário específico.
class UserMailerPreview
def welcome
user = @user_id ? User.find(@user_id) : mock_user
UserMailer.welcome(user)
end
end
5) Para acessar URLs REP assim
rails_email_preview.rep_root_url
rails_email_preview.rep_emails_url
rails_email_preview.rep_email_url(‘user_mailer-welcome’)
6) Podemos enviar e-mails via REP, que usará as configurações do mailer do ambiente. Remova o comentário dessa linha no inicializador para desativar o envio de e-mail no ambiente de teste.
config.enable_send_email = false
Fonte: RailsCarma Blog: Visualização de e-mails em aplicativos Rails com a gema Mail_View