2017-07-25 2 views
0

Ich habe diesen seltsamen Fehler mit Rails 5 Action Mailer.undefined Methode `Standard 'für ActionMailer

# app/mailers/application_mailer.rb 
class ApplicationMailer < ActionMailer::Base 
    default from: "[email protected]" 
    layout 'mailer' 
end 

irb

~/workspace/rails5 > rails c  [email protected] 
Running via Spring preloader in process 45498 
Loading development environment (Rails 5.1.2) 
2.4.1 :001 > ApplicationMailer 
    NameError: uninitialized constant Mail::TestMailer 
    from app/mailers/application_mailer.rb:1:in `<top (required)>' 
    from (irb):1 
2.4.1 :002 > ApplicationMailer 
    NoMethodError: undefined method `default' for ApplicationMailer:Class 
    from app/mailers/application_mailer.rb:3:in `<class:ApplicationMailer>' 
    from app/mailers/application_mailer.rb:1:in `<top (required)>' 
    from (irb):2 
2.4.1 :003 > 

Dies ist die Standard Scaffold von Schienen 5.

Zwei wirklich seltsame Dinge passieren die erste ist, dass es sagt mir immer, die nicht initialisierte Konstante dann trows Standard ist kein Methode direkt danach.

Einfach fragen, wie es zu beheben oder wenn ich auf die Schiene 5,0

+0

Verlassen Sie die Konsole, versuchen Sie 'spring stop', dann führen Sie die Konsole erneut –

+0

Im Zweifelsfall, Schuld Feder. Verlassen der Konsole sollte nicht notwendig sein, aber' bin/spring stop 'oft einige wirklich seltsame Rails Probleme behebt. – meagar

+0

@meagar von "verlassen Sie die Konsole", ich meine, verlassen Sie die Schienen-Konsole, nicht die Shell-Terminal:) –

Antwort

0

Die Lösung stellte sich heraus, dass, wenn Sie ein Modell mail die ActionMailer wird greifen, dass man zunächst anstelle der Schienen Klasse mit dem Namen haben Herabstufung sollte. Wenn dies passiert, schlägt es beim ersten Mal fehl, aber beim zweiten Mal wird die Klasse "rails" geladen und versucht, sie zusammen zu zerschlagen. Zulassen, dass das Submodul funktioniert, aber die Hauptklasse als Monkey-Pfad behandelt.

Verwandte Themen