Rails request_url在Mailer中获取未定义的局部变量

时间:2015-04-15 18:42:34

标签: ruby-on-rails

在Rails 3.2应用中,我试图在Mailer及其视图中使用浏览器URL。

以下是views/comment_mailer/comment_email.html.erb的代码:

<% fromurl = request_url %>

也尝试过:

<% fromurl = request.url %>

但是,我收到了这个错误:

undefined local variable or method `request_url' for ...

在调试器(better-errors gem)中,如果我输入request,我会得到nil。

感谢您的帮助!

UPDATE1:

我的问题似乎只出现在邮寄者和他的观点中。如果我在普通视图中放入相同的代码,它可以正常工作。我甚至尝试在helper/application_helper.rb中添加获取URL的帮助程序代码。它适用于其他视图,但在邮件程序视图中我得到undefined local variable or method

1 个答案:

答案 0 :(得分:1)

邮件程序中没有request,如果你想使用请求网址然后将其存储在其他地方并检索它

例如,actionmailer_with_request已经做到了。

如果您使用像puma这样的服务器,我建议您使用Thread.current的替代方法(例如RequestStore)来分叉(或找到一个分叉)来存储请求(我打开了一个问题这一点)。