【问题标题】:Store Global Variables for different environments in Rails在 Rails 中存储不同环境的全局变量
【发布时间】:2015-03-16 22:50:08
【问题描述】:

在我的 Rails 应用程序中,我还尝试测试对 Redis 的调用。例如在我的用户模型中,我有:

def self.add_to_visibles user #To show in the menu
    $redis.lpush("user_visibles", user.to_json(only: [:vorname, :nachname, :id, :created_at]))
end

现在,当我运行这个测试时,测试数据也被插入到 redis 存储 "user_visibles"。这意味着当我进行开发时,我也可以看到这些数据。

这就是为什么我想将我的方法更改为:

def self.add_to_visibles user #To show in the menu
    $redis.lpush($user_visibles, user.to_json(only: [:vorname, :nachname, :id, :created_at]))
end

并存储在$user_visibles:

测试用:$user_visibles = "user_visibles_test"

用于生产$user_visibles = "user_visibles"

我最好将这个变量存储在哪里?以及如何使环境有所不同?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4


    【解决方案1】:

    我会这样做:

    config/user_variables.rb

    Rails.configuration.user_variable =  YAML::load_file("#{Rails.root}/config/user_variables.yml")[Rails.env]
    

    并像这样创建 config/user_variables.yml

    production: 'user_visibles'
    test: 'user_visibles_test'
    

    记得重启你的服务器

    您必须在需要的地方使用 Rails.configuration.user_variable 获取值

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-13
      • 2020-06-08
      相关资源
      最近更新 更多