2017-06-21 4 views
0

Gerade aktualisiert eine Rails 3.2 Anwendung auf Schienen 4.2 und fing an, einen lustigen Fehler zu erhalten. Jedes Mal, wenn ich versuche, link_to mit einem einzigen Argument innerhalb meiner Mailer Vorlage aufzurufen, erhalte ich einen Fehler. Jedoch kann ich den gleichen Anruf innerhalb einer meiner normalen Ansichten gut machen.link_to mit einzelnen arg eingebrochenen Mailer

Innerhalb meiner Mailer Ansicht, ich versuche es so zu nennen:

# user_mailer/notify.html.haml 
... 
= link_to "https://example.com" 

Aber wenn die E-Mail von meinem Job-Handler verarbeitet wird, meldet es den Fehler ActionView::Template::Error: No route matches {:action=>"index"}. (Interessanterweise erhalten Sie dies, wenn Sie versuchen, url_for ohne Parameter aufzurufen).

jedoch auf meiner Homepage Ich habe kein Problem, die gleiche Sache mit:

# home/index.html.haml 
... 
= link_to "https://example.com" 

Ausgänge:

<a href="https://example.com">https://example.com</a> 

Soweit ich bei der Dokumentation suchen sagen kann, nichts mit link_to geändert zwischen Schienen 3.2 und 4.2 so bin ich verwirrt, warum das aufhören würde zu arbeiten ... Auch verwirrt, warum es an einem Ort funktioniert, aber nicht am anderen.

Antwort

1

link_to mit nur einem Parameter nicht tun, was Sie denken, dass es tut. Wenn Sie sich den generierten Link in Ihrer Ansicht ansehen, zeigt er nur auf die Site, auf der Sie sich gerade befinden. Sie müssen zwei Parameter angeben, den Körper und die URL.

= link_to "https://example.com" 
# <a href="/">https://example.com</a> 

Sie diese

= link_to "https://example.com", "https://example.com" 
+1

jedoch brauchen, die sehr viel Sinn macht ... Ich kann es anders war als habe geschworen konnte. Danke fürs Helfen! – ngoue