Je travaille sur a simple app qui est actuellement déployé à heroku maintenant - il utilise mongoid, périphérique et peut créer une connexion utilisateur très facilement dans localhost, mais pas en production à heroku. Vous pouvez essayer de créer un compte, et il donne une erreur après soumettre.MongoDB erreur avec Mongoid, Heroku, périphérique, MongoHQ et Rails
Je pense que mon mongoid.yml pour la production doit changer, mais je ne sais pas comment.
Mon heroku config
a ce qui suit:
=== Config Vars for bookfoo
DATABASE_URL: postgres://jeibucpexp:[email protected]/jeibucpexp
GEM_PATH: vendor/bundle/ruby/1.9.1
LANG: en_US.UTF-8
MONGOHQ_URL: mongodb://heroku:[email protected]:10065/app6153931
MONGOLAB_URI: mongodb://heroku_app6153931:[email protected]:37097/heroku_app6153931
PATH: bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
RACK_ENV: production
RAILS_ENV: production
SHARED_DATABASE_URL: postgres://jeibucpexp:[email protected]te-1.amazonaws.com/jeibucpexp
mongoid.yml a ce qui suit comme suggéré dans Heroku:
development:
sessions:
default:
database: bookfoo_app_development
hosts:
- localhost:27017
options:
consistency: :strong
options:
test:
sessions:
default:
database: bookfoo_app_test
hosts:
- localhost:27017
options:
consistency: :strong
production:
sessions:
default:
uri: <%= ENV['MONGOHQ_URL'] %>
options:
skip_version_check: true
safe: true
mon Gemfile a les éléments suivants:
source 'https://rubygems.org'
gem 'rails', '3.2.3'
group :development, :test do
gem 'sqlite3'
gem 'rspec-rails'
end
group :test do
gem 'database_cleaner'
gem 'mongoid-rspec'
gem 'factory_girl_rails'
gem 'email_spec'
gem 'capybara'
gem 'launchy'
end
group :production do
gem 'thin'
end
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem "mongoid", :git => "git://github.com/mongoid/mongoid.git"
gem "bson_ext"
gem "devise"
après git push heroku master
il me donne les conseils suivants:
There is a configuration error with the current mongoid.yml.
Problem:
No database provided for session configuration: :options.
Summary:
Each session configuration must provide a database so Mongoid knows where the default database to persist to. What was provided was: {"skip_version_check"=>true, "safe"=>true}.
Resolution:
If configuring via a mongoid.yml, ensure that within your :options section a :database value for the session's default database is defined.
Example:
\_\_development:
\_\_\_\_sessions:
\_\_\_\_\_\_options:
\_\_\_\_\_\_\_\_database: my_app_db
\_\_\_\_\_\_\_\_hosts:
\_\_\_\_\_\_\_\_\_\_- localhost:27017
grâce à cela. Je cherchais des heures déjà et puis j'ai réalisé que c'était l'indentation: / – macool