0

Rails 3.2 を使用しています。私は次のものを持っています

# application.rb
document   = YAML.load(File.read(File.expand_path('../app_config.yml', __FILE__)))
APP_CONFIG = document[Rails.env].merge(document['global'])

# app_config.yml
global:
  site_name_lowercase: abc

staging:
  site_domain: 192.168.33.10
  site_url: http://192.168.33.10

development:
  site_domain: abc.dev
  site_url: http://abc.dev

を実行しようとするとrails c RAILS_ENV=staging、次のようになりました。

/home/deployer/abc/releases/20131015193830/config/application.rb:9:in `<top (required)>': undefined method `merge' for nil:NilClass (NoMethodError)
    from /home/deployer/abc/shared/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:39:in `require'
    from /home/deployer/abc/shared/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:39:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

mergeのメソッドを指しapplication.rbます。rails c開発環境で実行しましたが、問題なく動作しました。app_config.yml開発環境では、読み取りからその内容の解析まで、すべてが正常に機能します。どうすればこれを修正できますか?

4

1 に答える 1

1

bundle exec rails c stagingの代わりに試してくださいrails c RAILS_ENV=staging

于 2013-10-16T09:40:33.583 に答える