首页 文章

Mongoid复制配置导致ArgumentError

提问于
浏览
1

我将复制添加到mongoid的 生产环境 部分,如下所示:

production:
  hosts:
    - - <%= ENV['MONGO_URL1'] %>:<%= ENV['MONGO_PORT'] %>
    - - <%= ENV['MONGO_URL2'] %>:<%= ENV['MONGO_PORT'] %>
  read: :secondary
  username: <%= ENV['MONGO_USERNAME'] %>
  password: <%= ENV['MONGO_PASSWORD'] %>
  database: <%= ENV['MONGO_DATABASE'] %>
  max_retries_on_connection_failure: 10

这适用于Heroku的 生产环境 ,但在本地,它导致我的服务器在开始给出错误时失败:

ROOT / Users / bashar / rails-projects / my-project /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/syck.rb:135:in load':第13行的语法错误,第9行: - - :'(ArgumentError)来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/syck.rb:135:in load from from /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/mongoid-2.4.7/lib/mongoid/railtie.rb:83:in阻止来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/initializable.rb:30: in instance_exec'from /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/initializable.rb:30:在'run / from /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/initializable.rb:55:在run_initializers中的块中来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/initializable.rb: 54:每个'来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/railt ies-3.1.3 / lib / rails / initializable.rb:54:in run_initializers'from /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/ railties-3.1.3 / lib / rails / application.rb:96:初始化!'来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/railtie/configurable.rb:30:in method_missing'来自/Users/bashar/rails-projects/my-project/config/environment.rb:5:in'来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems /1.9.1/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in require'from /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems /1.9.1/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:inblock in require'from /Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/ gems / 1.9.1 / gems / activesupport-3.1.3 / lib / active_support / dependencies.rb:223:在load_dependency中的块中来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ ruby / gems / 1.9.1 / gems / activesupport-3.1.3 / lib / active_support / dependencies.rb:640:innew_constants_in'来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby来自/Users/bashar/.rvm/rub的/gems/1.9.1/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:inload_dependency' ies / ruby-1.9.2-p290 / lib / ruby / gems / 1.9.1 / gems / activesupport-3.1.3 / lib / active_support / dependencies.rb:240:inrequire'from /Users/bashar/.rvm/rubies /ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/application.rb:83:in require_environment!'来自/Users/bashar/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/commands.rb:39:in'来自script / rails:6:in require'from script / rails:6:in'~/ rails-projects / my-project / [master]

我正在使用Rails 3.1.3 Mongo 1.6.2 Mongoid 2.4.9 MongoDB版本2.0.2

任何的想法?

1 回答

  • 0

    您的配置文件应如下所示:

    production:
      hosts:
        - <%= ENV['MONGO_URL1'] %>:<%= ENV['MONGO_PORT'] %>
        - <%= ENV['MONGO_URL2'] %>:<%= ENV['MONGO_PORT'] %>
      read: :secondary
      username: <%= ENV['MONGO_USERNAME'] %>
      password: <%= ENV['MONGO_PASSWORD'] %>
      database: <%= ENV['MONGO_DATABASE'] %>
      max_retries_on_connection_failure: 10
    

    它将决定:

    hosts: [ 'host1:port1', 'host2:port2']
    

    将主机和端口作为两个不同的东西时,您需要双数组:

    hosts: [ ['host1', 'port1'], ['host2', 'port2'] ]
    

相关问题