Mongoid を使用するのはこれが初めてで、テスト/ローカル サーバーではすべて正常に動作しますが、IBM Bluemix へのデプロイに関しては壁にぶつかっています (Bluemix の理由は聞かないでください。フィガロを使ったHeroku)
uri を使用して MongoLab に接続しています。
私のscerets.ymlで:
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
mongo_url: "mongodb://IbmCloud_xxxxxx_xxxxxx:xxxxxx@dsxxxxxx.mongolab.com:xxxxxx/IbmCloud_xxxxxx_xxxxxx"
私のmongoid.ymlで
production: sessions: default: # The standard MongoDB connection URI allows for easy replica set connection setup. # Use environment variables or a config file to keep your credentials safe. uri: <%= Rails.application.secrets.mongo_url %>
アプリをデプロイすると、URI が nil であるため、ステージングが失敗します。 uriをハードコーディングしてテストしたので、これは知っていましたが、うまくいきました。
現在、.gitignore に mongoid.yml を含めていないので、uri: <%= Rails.application.secrets.mongo_url %> を挿入できれば安全です。
また、uri を mongoid.yml にハードコーディングして gitignore に含めようとしましたが、他のバグがいくつか発生し、どちらがより良いアプローチなのか疑問に思います。
これが私が得るエラーメッセージです:
2015-07-07T17:29:53.01-0400 [STG/0] OUT rake aborted!
2015-07-07T17:29:53.01-0400 [STG/0] OUT NoMethodError: undefined method `match' for nil:NilClass
2015-07-07T17:29:53.01-0400 [STG/0] OUT /tmp/staged/app/vendor/bundle/ruby/2.2.0/gems/mongoid-4.0.2/lib/mongoid/sessions/mongo_uri.rb:49:in `initialize'
2015-07-07T17:29:53.01-0400 [STG/0] OUT /tmp/staged/app/vendor/bundle/ruby/2.2.0/gems/mongoid-4.0.2/lib/mongoid/sessions/factory.rb:106:in `new'
2015-07-07T17:29:53.01-0400 [STG/0] OUT /tmp/staged/app/vendor/bundle/ruby/2.2.0/gems/mongoid-4.0.2/lib/mongoid/sessions/factory.rb:106:in `parse'
2015-07-07T17:29:53.01-0400 [STG/0] OUT /tmp/staged/app/vendor/bundle/ruby/2.2.0/gems/mongoid-4.0.2/lib/mongoid/sessions/factory.rb:62:in `create_session'
繰り返しますが、これは、私が設定した urisecrets.yml
が で nil を示しているためmongoid.yml
です。
前もって感謝します!!