首页 > 解决方案 > 在 Ruby on Rails 中动态填充 .yml 文件

问题描述

我想在我的服务器加载时动态地在配置文件夹中填充我的 .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 但我不知道具体如何)

标签: ruby-on-railsyamlconfigembedded-ruby

解决方案


创建一个自定义类并定义他们的方法。然后要求里面的类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)  %>

推荐阅读