【发布时间】:2020-10-12 17:39:59
【问题描述】:
我们如何检测控制器中的根/基本 url?
我正在运行一个函数,它需要知道在完成后将用户返回到哪里,我希望它在开发和生产中工作。目前,如果我只是使用域名,那么在开发中它会将用户返回到实际网站(即www.example.com/reauth,而不是 http://localhost:3000),这是不可取的(在开发中,用户应该返回给开发人员;他们不应链接到网站的 prod 版本)。
所以我想要返回的代码:
-
https://www.example.com在生产中和 -
http://localhost:3000正在开发中
示例
这是我需要将refresh_url 的值设置为的确切示例的简化版本:
-
https://www.example.com/reauth在生产中, -
localhost:3000/reauth正在开发中
注意这里的关键是url的后半部分是一样的,但是前半部分(base url)是生产中的实际域,和开发中的localhost。
Stripe::AccountLink.create({
refresh_url: 'https://www.example.com/reauth'
})
到目前为止我所知道的
我看过:
- how to detect the base url in the model(和in the view),以及
-
how to get the base url(返回
NameError: undefined local variable or method 'request' for main:Object)
【问题讨论】:
-
我已经尽可能地简化了这一点,同时提供了尽可能多的细节以使问题完全可以理解。我希望它可以重新打开
-
考虑查看
rooturl 或使用命名助手查看新路由。除非 example.com 不是您的服务器,否则您不需要使用.base_url
标签: ruby-on-rails ruby-on-rails-6