Tôi đang làm việc trên a simple app hiện đang được triển khai cho heroku bây giờ - nó đang sử dụng mongoid, thiết bị và có thể tạo đăng nhập người dùng rất dễ dàng trong localhost, nhưng không phải lúc sản xuất heroku. Bạn có thể thử tạo một tài khoản và nó sẽ đưa ra một lỗi sau khi gửi.Lỗi MongoDB với Mongoid, Heroku, Thiết bị, MongoHQ và Rails
Tôi nghĩ rằng mongoid.yml của tôi cho sản xuất cần phải thay đổi, nhưng tôi không biết làm thế nào.
My heroku config
có sau đây:
=== 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]/jeibucpexp
mongoid.yml có sau như đề xuất trong 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
gemfile của tôi có như sau:
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"
sau git push heroku master
nó mang lại cho tôi những gợi ý sau:
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
nhờ cho việc này. Tôi đã tìm kiếm hàng giờ rồi tôi nhận ra đó là sự thụt đầu dòng: / – macool