env变量在rails控制台中可用但在应用程序中不可用

时间:2013-08-24 18:44:29

标签: ruby-on-rails linux ubuntu-12.04 vps

在我从零设置的vps之前从未遇到过这样的问题,其中一个(Ubuntu 12.04,64bit)是由其他开发人员安装的。

问题

.bashrc文件中我有:

export FACEBOOK_ID=123456789
export FACEBOOK_SECRET=987654321

现在在终端,如果我输入env我看到这些变量。 如果我打开rails console并输入ENV["FACEBOOK_ID"]ENV["FACEBOOK_SECRET"],我也可以看到合适的值。

问题是我必须在视图文件中的应用程序中使用FACEBOOK_ID,我这样做:

<%= ENV["FACEBOOK_ID"] %>

在本地计算机上返回正确的值,在vps的生产中它不返回任何内容。 我的想法是vps设置不正确,我找不到apache或ngnix,应用程序在var/www/apps/app_name/

可能出现什么问题,如何在模板中获取此env变量?

更新

根目录中可用的文件:

.bash_profile .bashrc .cshrc .zprofile .zshrc

1 个答案:

答案 0 :(得分:3)

请勿将其放在当地环境中。部署应用程序时该怎么办?如果您想在本地计算机上开发另一个使用Facebook ID的应用程序,该怎么办?

使用费加罗宝石。它是为处理此类案例,env变量和私有数据而构建的。 env变量可以在app中的YAML文件中设置,不会提交给repo。你不会后悔的。