kra*_*ene 5 ruby routes ruby-on-rails ruby-on-rails-3
每当其中一个邮件发送时如果主体包含类似的内容link_to root_url就会发出这种令人难以置信的无益错误:
ActionView::Template::Error: No route matches {}
Run Code Online (Sandbox Code Playgroud)
跟踪要么无用,要么指向该link_to方法.因为它在这里也是非常难以检测的,所以我要求堆栈溢出.
更新1:为了帮助,我发布了可怕的routes.rb文件:https://gist.github.com/2955610
更新2:在控制台中,app.root_url提供正确的返回.
更新3: link_to "whatever", root_url工作得很好.这么奇怪!
更新4:它在常规的rails视图中工作正常.
更新5: FIXED的image_tag现在是不是在电子邮件中提供的主机,输出:http://assets/...png.FFFFF.
更新6:我把它缩小到我得到同样的错误(在控制台中)app.url_for.我认为这可能是相关的.
所以真正的答案是link_to在ActionMailer中的工作方式与在ActionController 中的工作方式不同.不同的是,显然ActionController有一个名为的选项:script_name,这为你做了各种各样的假设.
虽然我不同意这种差异,但你可以做的却不多,所以这就是我最终做的事情:
link_to root_url, root_url
Run Code Online (Sandbox Code Playgroud)
现在,为什么我会同时使用它们?有两个原因:
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           879 次  |  
        
|   最近记录:  |