在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
。
答案 0 :(得分:1)
邮件程序中没有request
,如果你想使用请求网址然后将其存储在其他地方并检索它
例如,actionmailer_with_request
已经做到了。
如果您使用像puma这样的服务器,我建议您使用Thread.current
的替代方法(例如RequestStore
)来分叉(或找到一个分叉)来存储请求(我打开了一个问题这一点)。