1

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です。

前もって感謝します!!

4

1 に答える 1

0

Ruby ビルドパックは、お持ちの URL をオーバーライドしています。mongolab または mongodb サービスをアプリにアタッチする必要があります。ビルドパックは、データベースに自動配線します。

于 2015-07-09T19:16:59.967 に答える