Mit der E-Mail-Vorschau von Rails können wir die E-Mail im Entwicklungsmodus schnell im Webbrowser anzeigen.
1) “gem ‘rails_email_preview’, ‘~> 0.2.29’ “
Zur Gem-Datei hinzufügen und Bundle installieren.
2) Führen Sie “rails g rails_email_preview:install”
dies aus, um den Initialisierer im Konfigurationsordner zu erstellen und Routen hinzuzufügen.
3) Führen Sie “rails g rails_email_preview:update_previews”
diesen Ordner mit den Kisten mailer_previews im App-Verzeichnis aus.
Der Generator fügt jeder Ihrer E-Mails einen Stub hinzu, und dann füllen Sie den Stub mit Scheindaten.
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) Parameter in der Suchabfrage stehen als Instanzvariable für die Vorschau der Klasse zur Verfügung. Beispiel: Wenn wir eine URL haben, wie
“/emails/user_mailer_preview-welcome?user_id=1”
@user_id
sie in der Begrüßungsmethode definiert ist, können UserMailerPreview
wir E-Mails an einen bestimmten Benutzer senden.
class UserMailerPreview
def welcome
user = @user_id ? User.find(@user_id) : mock_user
UserMailer.welcome(user)
end
end
5) Um auf solche REP-URLs zuzugreifen
rails_email_preview.rep_root_url
rails_email_preview.rep_emails_url
rails_email_preview.rep_email_url(‘user_mailer-welcome’)
6) Wir können E-Mails über REP senden. Dabei werden die Einstellungen des Umgebungsmailers verwendet. Kommentieren Sie diese Zeile im Initialisierer aus, um das Senden von E-Mails in der Testumgebung zu deaktivieren.
config.enable_send_email = false
Quelle: RailsCarma Blog: Vorschau von E-Mails in Rails-Anwendungen mit dem Mail_View Gem