Rails Mailer:尝试使用URL帮助程序时“没有路由匹配{}”

时间:2018-01-19 13:45:41

标签: ruby-on-rails url routes actionmailer

我无法让*_url助手在我的邮件中工作。

例如,我resources :pages中有routes.rb

但是当试图在邮件程序视图中使用任何帮助程序时,它总是告诉我:

ActionController::UrlGenerationError
No route matches {}

以下测试可能会提供更多提示......

root_url                # results in No route matches {}
pages_url               # results in No route matches {}
page_url                # results in No route matches {:action=>"show", :controller=>"pages"}, missing required keys: [:id]
page_url 1              # results in No route matches {:action=>"show", :controller=>"pages", :locale=>1}, missing required keys: [:id]
page_url 1, locale: :en # results in No route matches {}

我不知道如何进一步调试和解决这个问题。

1 个答案:

答案 0 :(得分:0)

这可能是因为link_to需要两个参数。我在基于文本的邮件程序中使用link_to时遇到了这个问题,所以这是我的解决方法:

代替此:

Click here to verify this user: <%= link_to @user %>

尝试一下:

Click here to verify this user: <%= users_url(@user) %>