Ruby on rails 3 rails 3.2 haml电子邮件模板链接到错误

Ruby on rails 3 rails 3.2 haml电子邮件模板链接到错误,ruby-on-rails-3,haml,email-templates,Ruby On Rails 3,Haml,Email Templates,我有一个应用程序rails 3.2和haml 3.1.4电子邮件。在电子邮件模板中,我想使用link_to,但显然这4个模板都不适用于生产: #{link_to(my_models_url)} = link_to(my_models_url) / @url set to my_models_url #{link_to(@url)} = link_to(@url) 在开发模式下,一切正常,但在生产中,我不断遇到以下错误: No route matches {} actionpack (3.2

我有一个应用程序rails 3.2和haml 3.1.4电子邮件。在电子邮件模板中,我想使用link_to,但显然这4个模板都不适用于生产:

#{link_to(my_models_url)}
= link_to(my_models_url)

/ @url set to my_models_url
#{link_to(@url)}
= link_to(@url)
在开发模式下,一切正常,但在生产中,我不断遇到以下错误:

No route matches {}
 actionpack (3.2.0) lib/action_dispatch/routing/route_set.rb:503:in `raise_routing_error'
在以下情况下,当我使用帮助器方法时,它会起作用:

/ @my_link set to link_to(my_models_url)
#{@my_link}
= @my_link
但这并不方便,如果电子邮件中有更多的链接,一般来说,我不明白为什么前4个选项中的任何一个都不合适。我不知道这个问题是从哪里来的。我将非常感谢在这方面的任何帮助

解决方案:

多亏了iWasRobbed,我找到了我的问题所在:

所有{resource}\u路径和{resource}\u url必须在邮件程序中设置为@variables,它们在邮件程序视图中不可用 显然,mailer中的link_to方法与rails视图中的不同。。。它总是需要2个参数,所以不是link_to@link在视图中可用,需要做一个链接_to@link,@link。Pffff。。。
您需要在mailer.rb文件中声明URL。这与其说是HAML的问题,不如说是ActionMailer的设计方式

def some_mailer_here
  @url = my_models_url
end
然后在邮件视图中,您可以执行以下操作:

= link_to("My models URL", @url)

谢谢你的回答。我解决了生产中的问题,但我还有一个问题:。你可能也知道这个问题的答案吗?