2011-02-25 105 views
26

是否有可能使用链接在rails中生成绝对URL? [注:这是邮包]绝对URL与link_to ... Ruby on Rails

我试图做的:

<%= link_to root_url, root_url%> 

但我得到一个运行时错误:

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

我需要这是动态的,因为该应用程序将在一个通配符域(* .domain.com)

+0

为什么你需要的网址是绝对在这种情况下?相对URL将与当前主机相关,这听起来像你想要的 – Gareth 2011-02-25 13:11:42

+0

我能想到的唯一原因是,这是因为这个链接将被嵌入到电子邮件中。这是在这里发生什么克里斯? – 2011-02-25 13:34:33

+0

是的,我在电子邮件 – 2011-02-25 13:44:23

回答

0

在routes.rb中插入运行:

root :to => 'controller#action' 

或者将您当前的map.root替换为正确的。

看到有关此文件:routes.rb usage

+0

很确定routes.rb中的“map”仅适用于Rails 2。 – Tronathan 2013-03-03 04:03:51

+0

@Tronathan你是对的我更新了这个旧的答案:) – Awea 2013-03-03 12:37:30

38

如果使用_url后缀,生成的URL是绝对的。使用_path获取相对URL。

<%= link_to "Home", root_url %> 

<%= link_to "Home", root_path %> 
+3

从定期的角度来看,这很好,但从一个邮件程序我没有那么多运气... – 2011-02-25 13:43:34

+5

在梅勒你需要通过或配置一个默认主机。 – 2011-02-25 14:04:25

+2

如果主机是动态的,会发生什么。 * .domain.com? – 2011-02-25 14:13:29

6

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

link_to(body, "http://#{site_url}")