带有link_to的绝对URL ... Ruby on Rails

Chr*_*nch 28 ruby-on-rails

是否可以使用link to rails在rails中生成绝对URL?[注意:这是在MAILER]

我试着这样做:

<%= link_to root_url, root_url%>
Run Code Online (Sandbox Code Playgroud)

但是我收到运行时错误:

*缺少主机链接!请提供:host参数或设置default_url_options [:host]*

我需要它是动态的,因为应用程序将在通配符域(*.domain.com)上运行

Sim*_*tti 43

如果使用_url后缀,则生成的URL是绝对的.使用_path获得相对URL.

<%= link_to "Home", root_url %>

<%= link_to "Home", root_path %>
Run Code Online (Sandbox Code Playgroud)

  • 在Mailer中,您需要传递或配置默认主机. (5认同)
  • 从常规视图可以正常工作,但是从邮件中我没有那么多运气...... (3认同)
  • 如果主机是动态的,会发生什么.*.domain.com? (2认同)
  • 这太棒了.我可以使用`route_name_url(param)`来代替`route_name_path(param)`.就这么简单. (2认同)

小智 7

根据您的使用情况,字符串插值可能是一个很好的解决方案:

link_to(body, "http://#{site_url}")
Run Code Online (Sandbox Code Playgroud)