0

構成変数を初期化し、その変数を宝石で読み取るためのベストプラクティスを誰か教えてもらえますか?

次の手順を試してみました: このコードはgemで書かれています

config = YAML.load_file("#{RAILS_ROOT}/config/config.yml")
 @key = config["config"]["key"]
 server = config["config"]["server"]

Rails アプリケーションの config/config.yml に yml ファイルを作成しました。

前もって感謝します、

ジャグディッシュ語

4

2 に答える 2

1

Rails で構成変数を設定するお気に入りの方法は、figaro gemを使用することです。フィガロは基本的にENV['x']レール全体で利用可能な方法を利用しています。すべての構成変数を共通の application.yml ファイル内に保存し、ENV 変数を介してすべての定数にアクセスできるようにします。

ボーナスは、これが Heroku のやり方と同じように 1 対 1 で変換されることです。

于 2013-09-19T06:42:10.640 に答える
1

私は次のように一度それをしました:

module YourGem
  class YourClass

    @config = { :username => "foo", :password => "bar" } # or @config = SomeHelperClass.default_config if the config is more complex
    @valid_config_keys = @config.keys

    # Configure through hash
    def self.configure(opts = {})
      opts.each { |k,v| @config[k.to_sym] = v if @valid_config_keys.include? k.to_sym }
    end

    # Configure through yaml file
    def self.configure_with(path_to_yaml_file)
      begin
        config = YAML::load(IO.read(path_to_yaml_file))
      rescue => e
        raise "YAML configuration file couldn't be found: #{e}"
      end
      configure(config)
    end

  end

end

また、gem が必要な Rails アプリケーションでは、初期化子を追加して、次のように構成できます。

config/initializers/your_initializer.rb

YourGem::YourClass.configure_with(path_to_the_yml_config_file)

このソリューションは、デフォルトの構成を提供し、独自の yaml ファイルを追加してデフォルト値を変更する可能性を提供します。

于 2013-09-19T06:51:50.817 に答える