rails获取app root / base url

在我的应用程序中,我有一些API在api域下。 现在在其中一个API中,我想生成一个指向主域的URL,比方说

test.com/blabla... 

我试图使用url_for,但似乎默认的root_urlrequest.host在api域中。 Url_for将成为现实

 api.test.com/blabla.. 

虽然我想要它

 test.com/blabla... 

Url_for可以带参数

 host: ... 

将它设置为test.com/,问题是如何获取主机的root / base url(test.com)? root_urlrequest.host都是api.test.com。

有任何想法吗? 谢谢。

根据这个你可以做request.domain

为了让它对别人有用,我今天遇到了这个

 request.base_url 

提供本地和现场的完整路径。

 request.domain 

只提供域名,所以它有时会在重定向时打破链接

最简单的替代方法:

包括你在课堂上

 include Rails.application.routes.url_helpers 

创建函数或只使用root_url来获取app root / base url:

  def add_host_prefix(url) URI.join(root_url, url).to_s end 

最后:添加

 Rails.application.routes.default_url_options[:host] = 'localhost:3000' 

在:

Your_project_root_deir/config/environments/development.rb

虽然助手只能在视图中访问,但这是有效的解决方案。

request.domain在CF上失败,它给出了域url而不是基本url