10

为了能够查看用户是否在 Facebook 上分享了我的页面,我希望能够创建这种 URL:

http://graph.facebook.com/?id=http://stylehatch.co/some_unique_user_token

http://stylehatch.co需要作为我的基本 URL。我正在考虑在 User 模型中使用一个方法来构建并返回该 URL,但我无法从我的模型中访问 root_url。

如何从模型中获取应用程序的基本 URL?

假设我的网址看起来像这样:

http://myapp.com/users/new

http://myapp.com/users/2/show

如何从我的模型中获取“ http://myapp.com ”?我已经添加了:

  include Rails.application.routes.url_helpers

在我的模型中,但似乎 root_url 为零。有什么想法吗?这是一个模型方法是否正确,或者我应该把它放在一个助手中?

谢谢

4

2 回答 2

15

如果你想在你的模型中获取根 URL,我所做的就是调用一个 ENV 变量。

如果您还没有,请继续在您的应用程序的根目录中创建 .env 并在开发中设置为:

ROOT_URL=http://localhost

在您的生产环境集中:

ROOT_URL=https://mydomain.com

当然这是硬编码的,所以陷阱是您需要记住在更改域时更改它,并且每个环境的文件必须不同。

并确保这也在您的 gitignore 中,因为其他敏感数据将存储在这里。

在您的模型中,您通过以下方式调用: ENV['ROOT_URL']

于 2014-06-23T16:53:23.507 回答
3

您可以使用环境变量:

在环境中

ROOT_URL=http://myapp.com

应用内

ENV['ROOT_URL']
于 2013-04-30T17:18:06.613 回答