1

Rails 開発サーバーを起動するとエラーが発生します。Rails 3.0.6 と Ruby 1.8.7 (2012-06-29 パッチレベル 370) [i686-linux] を実行しています。

rails sを実行するとコンソール出力はこんな感じ

=> Booting Mongrel
=> Rails 3.0.6 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
host is not a valid option for Mongo::Connection

私の主な懸念は、このエラー「ホストは Mongo::Connection の有効なオプションではありません」です。デバイス 1.5.2 を統合して、Omniauth 経由で Facebook、Twitter、LinkedIn のログインを実行すると、この mongoDB エラーが表示されます。

この Rails アプリで使用する GemFile。

source 'http://rubygems.org'

gem 'rails', '3.0.6'
gem 'rake', '0.8.7'

gem 'mysql'
gem 'mysql2', "0.2.11"

gem 'mongrel'
gem 'jquery-rails', '>= 0.2.7' 
gem 'active_scaffold_vho' 
gem 'inherited_resources', '~> 1.2.1' 
gem 'has_scope', '~> 0.5.0' 
gem 'json_pure' 
gem 'formtastic', '~> 1.2.3' 
gem "devise", "1.5.2"
gem 'omniauth'
gem 'omniauth-twitter'
gem 'omniauth-facebook'
gem 'omniauth-linkedin'
gem 'omniauth-openid'
gem 'recaptcha', :require => 'recaptcha/rails' 

gem 'uuidtools', '~> 2.1.2'

gem 'capistrano', '~> 2.6.0' 

gem 'cgi_multipart_eof_fix'
gem 'fastthread'

gem 'mongoid', "~>2.0" #Mongoid
gem 'bson_ext', "~>1.3" #Mongoid

gem 'redis', "~> 2.2.0"
gem 'resque'
gem 'resque-scheduler'

gem 'SystemTimer', "~> 1.2.3" 

gem 'ar_mailer_rails3' 
gem 'lazy_high_charts', "~> 1.1.1" 

gem 'rails-breadcrumbs', "~> 1.0.0"

gem 'curb' 

gem 'geonames', "~> 0.2.2" 

gem 'activemerchant'

gem 'savon', "~> 0.9.7"

gem 'rack-ssl'
gem 'state_machine'

gem "http_accept_language", '~> 1.0.2'

gem 'recurly', '~> 2.1.0'
gem 'newrelic_rpm'

group :test, :development do
  gem 'rspec-rails', "~> 2.8"
  gem 'rspec-mocks', "~> 2.8"
  gem 'capybara', "~> 0.4.1.2"
  gem 'database_cleaner', "~> 0.6.7 "
  gem 'cucumber', "~> 0.10.2"
  gem 'spork', "~> 0.9.0"
  gem 'launchy', "~> 0.4.0"
  gem 'machinist', "~> 1.0.6"
  gem 'factory_girl_rails', "1.3.0"
  gem 'faker', "~> 0.9.5"
  gem 'email_spec'  
  gem 'rails-erd'  
  gem 'ruby-debug'
end

group :development do
  gem "hirb"
  gem "awesome_print"
end

mongoid.yml ファイルは次のとおりです。

defaults: &defaults
  host: localhost
  database: teenscrio

development:
  <<: *defaults
  database: teenscrio_dev

staging:
  <<: *defaults
  database: teenscrio_stg

test:
  <<: *defaults
  database: teenscrio_tst

# set these environment variables on your prod server
production:
  host: <%= ENV['MONGOID_HOST'] %>
  port: <%= ENV['MONGOID_PORT'] %>
  username: <%= ENV['MONGOID_USERNAME'] %>
  password: <%= ENV['MONGOID_PASSWORD'] %>
  database: <%= ENV['MONGOID_DATABASE'] %>

なぜこのエラーが表示されるようになったのですか? デバイスとモンゴイドの関係は?この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

mongoid.yml から削除する必要があります

host: localhost

その後、エラーは表示されず、正常に動作します。

于 2012-10-23T06:33:59.557 に答える
0

どのように初期化するかを再考する必要がありますMongo::Connection。オプションでホストを誤って指定しているようですが、初期化子に直接渡すか、環境で指定する必要があります

MongoDB接続を構築する方法に関して、開発環境と本番環境の間にいくつかの違いがあり、それが発生する例外につながると思います。

于 2012-10-22T20:41:20.940 に答える