4

シナトラを試す | Mongoid 3. データベースに保存しようとすると、次のエラーが発生します。

Mongoid::Errors::NoSessionsConfig: 
Problem:
 No sessions configuration provided.
Summary:
Mongoid's configuration requires that you provide details about each session that can be connected to, and requires in the sessions config at least 1 default session to exist.
Resolution:
    Double check your mongoid.yml to make sure that you have a top-level sessions key with at least 1 default session configuration for it. You can regenerate a new mongoid.yml for assistance via `rails g mongoid:config`.

Example:
 development:
    sessions:
     default:
        database: mongoid_dev
     hosts:
      - localhost:27017

from /Users/rhodee/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/mongoid-3.0.13/lib/mongoid/sessions/factory.rb:61:in `create_session'

私はすでに次のことを確認しました:

  • Mongoid.yml ファイルが読み込まれます
  • ハッシュには正しい環境とデータベース名が含まれています

pry を使用すると、Mongoid.load!メソッドからの戻り値が返されます。

=> {"sessions"=>
 {"default"=>
 {"database"=>"bluster",
 "hosts"=>["localhost:27017"],
 "options"=>{"consistency"=>"strong "}}}}

ヘルプ チェックの場合は、app.rb ファイルと mongoid.yml ファイルも追加しました。

App.rb

require 'sinatra'
require 'mongoid'
require 'pry'
require 'routes'
require 'location'

configure :development do
 enable :logging, :dump_errors, :run, :sessions
 Mongoid.load!(File.join(File.dirname(__FILE__), "config", "mongoid.yml"))
end

Mongoid.yml

 development:
   sessions:
     default:
      database: bluster
      hosts:
        - localhost:27017
      options:
       consistency: strong 
4

1 に答える 1

1
require 'sinatra'
require 'mongoid'
require 'pry'
require 'routes'

configure :development do
  enable :logging, :dump_errors, :run, :sessions
  Mongoid.load!(File.join(File.dirname(__FILE__), "config", "mongoid.yml"))
end

get '/db' do
  "db: " <<  Mongoid.default_session[:moped].database.inspect
end

私は例をまとめました、そしてそれは私にとってうまく働いています。おそらくあなたの問題は、設定ファイルに読み取りアクセス権がないなど、他の何かです。とにかく私の設定ファイルはあなたのものと同じであり、これは私のsinatraファイルであり、それはうまく機能します。

于 2013-01-01T23:03:35.203 に答える