ruby-on-rails rails获取应用根目录/基本url

u7up0aaq  于 2023-02-26  发布在  Ruby
关注(0)|答案(4)|浏览(178)

在我的应用程序中,我有一些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/,问题是如何获得主机的根/基本URL(test.com)?root_urlrequest.host都是api.test.com。
有什么主意吗?谢谢。

mpbci0fu

mpbci0fu1#

只是为了对别人有用我今天偶然发现了这个

request.base_url

提供本地和实时的完整路径。

request.domain

给只是域名,所以它有时有点打破链接,而重定向

xoefb8l8

xoefb8l82#

根据这个你可以做request.domain

iyzzxitl

iyzzxitl3#

最简单的替代方法:

包括在您类中

include Rails.application.routes.url_helpers

创建函数或仅使用root_url获取应用根/基本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
虽然助手只能在视图中访问,但这是可行的解决方案。

5vf7fwbs

5vf7fwbs4#

如果给定的域url不是基本url,则CF上的request.domain失败

相关问题