5

現在herokuにデプロイされている単純なアプリに取り組んでいます.mongoid、deviceを使用しており、localhostでユーザーログインを非常に簡単に作成できますが、herokuでは本番環境では作成できません. アカウントを作成しようとすると、送信後にエラーが発生します。

本番用の mongoid.yml を変更する必要があると思いますが、方法がわかりません。

heroku configは次のものを持っています:

 === Config Vars for bookfoo
DATABASE_URL:        postgres://jeibucpexp:bVZzGaGPUeGylwmA7dyE@ec2-107-20-186-97.compute-1.amazonaws.com/jeibucpexp
GEM_PATH:            vendor/bundle/ruby/1.9.1
LANG:                en_US.UTF-8
MONGOHQ_URL:         mongodb://heroku:14bc6d476e6449c952d6350b07e89643@alex.mongohq.com:10065/app6153931
MONGOLAB_URI:        mongodb://heroku_app6153931:og03dk0hdrj7r8lsit51k6ah9n@ds037097-a.mongolab.com: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:bVZzGaGPUeGylwmA7dyE@ec2-107-20-186-97.compute-1.amazonaws.com/jeibucpexp

mongoid.yml には、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には次のものがあります:

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"

git push heroku masterそれは私に次のヒントを与えた後:

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
4

1 に答える 1

5

mongoid.yml はそうあるべきです (私のインデントは間違っていました):

production:
  sessions:
    default:
      uri: <%= ENV['MONGOHQ_URL'] %>
      options:
        skip_version_check: true
        safe: true
于 2012-08-13T10:00:07.303 に答える