私は mongoid 3.0.1 にアップグレードし、mongoid.yml の新しい形式を作成しました - 私の mongoid.yml は次のようになります:
production:
sessions:
default:
database: grbr_production
hosts:
- localhost:27017
options:
consistency: :strong
options:
raise_not_found_error: false
test:
sessions:
default:
database: grbr_test
hosts:
- localhost:27017
options:
consistency: :strong
raise_not_found_error: false
development:
sessions:
default:
database: grbr_development
hosts:
- localhost:27017
options:
consistency: :strong
raise_not_found_error: false
開発中、正しいデータベースが選択されていることがわかります。しかし、本番環境では、「管理者」データベースが選択され、アプリが壊れていることがわかります。本番マシンで RAILS_ENV を「production」に設定しましたが、それでもこのエラーが表示されます。私が目にするもう 1 つの非常に奇妙な点は、実稼働環境では、モペットがデータベースに対してクエリを実行することさえしないということです。開発および本番環境からの次のログは、次のことを示しています。
Development log:
MOPED: 127.0.0.1:27017 COMMAND database=admin command={:ismaster=>1} (0.6645ms)**
MOPED: 127.0.0.1:27017 QUERY database=grbr_development collection=topsearches selector={"$query"=>{"type"=>"books"}, "$orderby"=>{"cnt"=>-1}} flags=[] limit=10 skip=0 fields=nil (0.8984ms)
Production Log:
MOPED: 127.0.0.1:27017 COMMAND database=admin command={:ismaster=>1} (0.6878ms)**
そのため、本番環境では、クエリが本番データベースで起動されるのを確認できません。