2014-06-09 17 views
18

Rails hat 607 offene Fragen ... so, anstatt dieses Loch noch mehr zu verstopfen, obwohl ich hier zuerst versuchen. Ich habe ein Upgrade auf 4.1 durchgeführt und implementiere die Mailer-Vorschau von Rails. Ich habe versucht, meinen bestehenden Mailer zu aktualisieren und das Verzeichnis tests/mailers/previews hinzuzufügen. Als das den folgenden Fehler gab, versuchte ich, einen neuen Mailer zu erzeugen. Derselbe Fehler.New rails 4.1 mailer Vorschau Aktion nicht gefunden Fehler

class NotifierPreview < ActionMailer::Preview 
    def welcome 
     Notifier.welcome(User.first) 
    end 
    end 

Ergebnisse in diesem Fehler:

The action 'notifier' could not be found for Rails::MailersController 

Ich habe versucht, Google-Suche, die Dokumentation, Stack-Überlauf, aber nichts entzieht sich zu diesem Fehler.

Wer erlebt das oder hat irgendwelche Ideen?

Antwort

7

Dies ist, weil Sie UserMailer mit NotifierPreview verwenden. Ändern Sie NotifierPreview zu UserMailerPreview und es beginnt zu arbeiten. Überprüfen Sie die Beispielimplementierung https://github.com/RichIsOnRails/ActionMailerPreviewsExample und das Tutorial.

Prost !!

+0

Ich wünschte es wäre so einfach ... aber meine Benennung ist korrekt. – hellion

+0

Haben Sie das Beispiel git Repo überprüft? es benutzt Schienen 4.1. –

+0

Stellt sich heraus das Problem (so scheint es) ist in meiner Routes-Datei. Ich habe zwei Routen "get '/: controller (/: action (/: id))', get '/:controller(/:action(/id))(.:format)'" die offensichtlich veraltet sind .. .oder wird bald sein. Dies ist über einen Kommentar in der Rails-Ausgabe, die ich eingereicht habe. Wenn ich diese Routen entferne, bekomme ich andere Fehler ... zumindest jetzt kenne ich die Ursache. Ich benutze den Link, den du geteilt hast, um Probleme zu beheben. Danke, Maximus! – hellion

3

Entfernen Sie die Zeile (n)

get '/:controller(/:action(/:id))' 
get '/:controller(/:action(/:id))(.:format)' 

von Ihrem routes.rb

Wie @hellion auf der vorherige Antwort in einem Kommentar sagt dies die Lösung für dieses Problem ist.

+0

Ich konnte nicht alle Routen aus meiner App entfernen, daher war dies hilfreich http://stackoverflow.com/questions/26130130/what-are-the-routes-i-need-to-set-up-to- Vorschau-E-Mails-using-rails-4-1-actionmai –

49

Der Standard Vorschau Pfad ist /test/mailers/previews aber rspec wird diese /spec/mailers/previews

Sie werden außer Kraft setzen den Pfad festlegen zu sein, was Sie wollen mit:

config.action_mailer.preview_path = "#{Rails.root}/test/mailers/previews" 
+7

Mein Held! Die Mailer-Vorschau funktionierte plötzlich nicht mehr - nur eine leere/weiße Seite anstelle des Indexes. Habe rspec nicht mit meinen Mailerpfaden verschraubt. – Rockster160

2

Wenn Sie rspec verwenden, stellen Sie sicher, dass das rspec-rails Gem in der Entwicklungsumgebung geladen wird, andernfalls wird Rails die Vorschau im Ordner/test, not/spec suchen.

Verwandte Themen