在Ruby on Rails中动态填充.yml文件

时间:2018-06-27 17:48:57

标签: ruby-on-rails yaml config embedded-ruby

我想在服务器加载时动态在配置文件夹中填充.yml文件。

以下是我的.yml文件的示例

# Configuration Credentials

development: &development
  user: "***"
  password: "***" 

test:
  <<: *development

non-prod:
  user: "***"
  password: "***" 

production: &production
  user: "***"
  password: "***"  

我想以嵌入式红宝石的形式设置每个键的值,如下所示:

development: &development
  user: <%= get_value_for(user)  %>
  password: <%= get_value_for(password)  %>

我要在服务器即将运行时加载.yml文件。

我想知道应该在哪里定义get_value_for方法,以便可以在yml文件中调用它? (可能在application.rb中,但我不知道具体如何)

1 个答案:

答案 0 :(得分:1)

创建一个自定义类并定义其方法。然后要求config/application.rb

中的类
# app/global/database_details.rb
class DatabaseDetails

  def self.get_value_for(user)
  end
end

config/application.rb

require_relative '../app/global/database_details'

module AppName
  class Application < Rails::Application

  end
end

config/database.yml

development: &development
  user: <%= DatabaseDetails.get_value_for(user)  %>
  password: <%= DatabaseDetails.get_value_for(password)  %>