5

ruby gem を作成していて、ユーザーが独自の yaml ファイル構成を使用できるようにしたいのですが、user_config.yml が Rails 構成パスに存在するかどうかをテストする方法がわかりません。
このファイルが構成パスに存在する場合にのみ、user_config.yml を使用します。

4

2 に答える 2

13

Rails.root(またはRAILS_ROOT以前のバージョンのRailsでは)アプリケーションルートのパスを提供します。そこから、関心のあるファイルが存在するかどうかを確認できます。

例えば

path = File.join(Rails.root, "config", "user_config.yml")
if File.exists?(path)
  # do something
end
于 2012-09-28T00:17:12.590 に答える
1

Array 型の $LOAD_PATH 変数を使用して、Rails アプリのロード パスにアクセスできます。

したがって

if $LOAD_PATH.include?('/path/where/user/should/put/their/user_config.yml')
  # EDIT
  config_options = File.new('rails_app/config/user_config.yml', 'r')
else
  # EDIT
  config_options = File.new('path/to/default/config.yml', 'r')
end

Ruby File クラスには #exists? という別の便利なメソッドもあります。もちろん、ファイルが存在するかどうかを確認します。詳細については、File クラスのドキュメントを参照してください。

これで始められることを願っています。あなたの質問はかなり漠然としていました。さらにサポートが必要な場合は、詳細を返信してください。

于 2012-09-27T19:12:22.903 に答える