link_to 邮件程序中有一个 arg 损坏
link_to with single arg broken in mailer
刚刚将 Rails 3.2 应用程序更新到 Rails 4.2 并开始出现一个有趣的错误。每当我尝试在我的邮件程序模板中使用单个参数调用 link_to
时,我都会收到错误消息。但是,我可以在我的一个常规视图中进行相同的调用。
在我的邮件视图中,我试着这样称呼它:
# user_mailer/notify.html.haml
...
= link_to "https://example.com"
但是当我的作业处理程序处理电子邮件时,它报告错误 ActionView::Template::Error: No route matches {:action=>"index"}
。 (有趣的是,这就是当您尝试不带任何参数调用 url_for
时得到的结果)。
但是,在我的主页上使用相同的东西没有问题:
# home/index.html.haml
...
= link_to "https://example.com"
输出:
<a href="https://example.com">https://example.com</a>
据我所知,查看文档时,Rails 3.2 和 4.2 之间的 link_to
没有任何变化所以我很困惑为什么这会停止工作......也很困惑为什么它在一个地方工作,但在另一个地方不工作。
link_to
只有一个参数并没有达到您的预期。如果您在视图中查看生成的 link,它只会指向您当前所在的站点。您必须提供两个参数,正文和 url.
= link_to "https://example.com"
# <a href="/">https://example.com</a>
不过你会需要这个
= link_to "https://example.com", "https://example.com"
刚刚将 Rails 3.2 应用程序更新到 Rails 4.2 并开始出现一个有趣的错误。每当我尝试在我的邮件程序模板中使用单个参数调用 link_to
时,我都会收到错误消息。但是,我可以在我的一个常规视图中进行相同的调用。
在我的邮件视图中,我试着这样称呼它:
# user_mailer/notify.html.haml
...
= link_to "https://example.com"
但是当我的作业处理程序处理电子邮件时,它报告错误 ActionView::Template::Error: No route matches {:action=>"index"}
。 (有趣的是,这就是当您尝试不带任何参数调用 url_for
时得到的结果)。
但是,在我的主页上使用相同的东西没有问题:
# home/index.html.haml
...
= link_to "https://example.com"
输出:
<a href="https://example.com">https://example.com</a>
据我所知,查看文档时,Rails 3.2 和 4.2 之间的 link_to
没有任何变化所以我很困惑为什么这会停止工作......也很困惑为什么它在一个地方工作,但在另一个地方不工作。
link_to
只有一个参数并没有达到您的预期。如果您在视图中查看生成的 link,它只会指向您当前所在的站点。您必须提供两个参数,正文和 url.
= link_to "https://example.com"
# <a href="/">https://example.com</a>
不过你会需要这个
= link_to "https://example.com", "https://example.com"