2016-05-27 6 views
1

Nach dem Upgrade auf Rails 5.0.0.beta4, bekomme ich eine 'undefinierte Methode' Fehler beim Versuch, eine E-Mail mit dem Rails Pfad Helfer zu senden. Ich habe eine ActiveRecord-Klasse namens Project und ich versuche, eine E-Mail mit einem Link auf die Projektseite mit dem Pfad Helper `Projektpfad (project.id) zu senden. Vor Rails 5 funktionierte das früher.Rails 5 Entity Pfad Helfer Methode nicht gefunden

Hier ist die ERB für den Link:

<%= project_path(@project.id) %> 

I Action bin mit der E-Mail zu senden. Irgendwelche Ideen, was dieses Problem nach dem Wechsel zu Rails 5 verursacht haben könnte?

+0

Haben Sie versucht, "Rake-Routen" auszuführen, um die verfügbaren Pfadmethoden zu sehen? –

Antwort

3

Rails 4.2 erlaubt diese Funktion als eine Übertragung von Rails-Versionen Vergangenheit; Rails 4.2 hat es jedoch explizit über die Dokumentation in der Rails 4.2 Release Notes abgeraten. Diese dokumentierte Entmutigung wird als veraltet bezeichnet und wird als Vorabbenachrichtigung verwendet, dass ein Feature den Code in einer nachfolgenden Version bricht.

Der vollständige Zweck der Vernachlässigung besteht darin, die Funktion in den aktuellen Versionen weiterarbeiten zu lassen, um die Produktivität nicht zu beeinträchtigen. Funktional gesehen bewegen sich Architektur, Bibliotheken und sogar die Sprache kontrolliert vorwärts. Beachten Sie, dass Sicherheitsprobleme nicht folgen dem Verfallsprozess, und in situ behoben werden, um Schwachstellen so schnell wie möglich zu beseitigen.

Rails 5 war die Version, die tatsächlich die ActionMailer-Unterstützung für _path Helfer entfernt, die zuvor veraltet worden war. Die Rails 5.0.0.beta1 CHANGELOG zeigt, dass die Pause dann gemacht wurde. Die pull request wurde in Rails 5 RC1 mit this commit zusammengeführt.

0

Ich glaube nicht, dass dies etwas mit Rails 5 zu tun hat, könnte es sein, bitte korrigieren Sie mich, wenn ich falsch liege.

Stellen Sie sich vor, Sie öffnen eine E-Mail. Du siehst einen Link zu etwas, oooh lass mich darauf klicken.

klicken

file:///projects/1 erscheint im Browserfenster. Eh? Das ist komisch. Lass es mich nochmal versuchen.

file:///projects/1 ah, ich sehe das Problem diese Person hat versucht, den Weg einer Website in eine E-Mail zu setzen.

TL; DR Verwenden Sie project_url nicht project_path.

+0

Die URL wird der Zeichenfolge vorangestellt, mit der ich Probleme habe und die funktioniert. Es tritt ein Problem auf, bevor die E-Mail gesendet wird, und verursacht einen Absturz beim Rendern der E-Mail. Es ist kein Pfadproblem. –

+0

Das ist die E-Mail wird wegen dieses Fehlers nicht gesendet. –

+0

Warum die Downvotes? – DickieBoy

0

Pfadhelfer wurden offenbar für E-Mails in Schienen 5 entfernt. Die neue Syntax ist wie von DickieBoy project_url beschrieben, die die gesamte URL statt nur einen Teil der URL gibt.

+0

Also hast du meine Antwort abgelehnt, die Antwort daraus genommen und deine eigene Antwort gemacht? – DickieBoy

+0

Wo haben Sie über die Entwertung in Schienen 5 gelesen? Quelle? –

+0

@TomLord Der Hinweis * deprecation * war in den Versionshinweisen zu Rails 4.2 enthalten: http://edgeguides.rubyonrails.org/4_2_release_notes.html#action-mailer. Die Funktion wurde in Rails 5 tatsächlich * entfernt. –

Verwandte Themen