全球变量不在生产中

时间:2014-01-30 18:04:53

标签: ruby-on-rails global-variables production

我有以下一对控制器:

Admin :: BaseController - 用于应用程序的后端。

Base :: BaseController - 用于应用程序的前端。

在Admin :: BaseController中,我设置了以下全局变量:

$FRONTEND = false

在Base :: BaseController中我按如下方式设置:

$FRONTEND = true

我这样做,以便我可以在各种模型中执行以下操作:

def to_param
   If $FRONTEND
      ...
   else
      ...
   end
 end

这适用于开发但不适用于生产。我知道我可能不应该使用全局变量。对此有什么好的替代方案?

2 个答案:

答案 0 :(得分:0)

创建环境变量而不是它。 例如env ['name ur variable'] = environment.rb文件中的值

答案 1 :(得分:0)

您可以使用Figaro gem设置环境变量。请在此处查看:https://github.com/laserlemon/figaro

它允许您非常轻松地设置开发和生产变量。

然后您可以使用ENV['name']访问它们,并且提到的宝石也会将它们添加到您的Heroku帐户(假设您在Heroku上托管)