2013-03-12 8 views
9

नामक सत्र के लिए कोई कॉन्फ़िगरेशन नहीं मिला, मैंने रेल्स माउंटेबल ऐप बनाया है और 'मोंगोइड' और 'आरएसपीसी' मणि जोड़ा है। करने के लिए spec_helper.rb सब कुछ सामान्य काम करता है जब मैं Mongoid.load!(Rails.root.join("config", "mongoid.yml")) पंक्ति जोड़ेंरेल इंजन + Mongoid: 'डिफ़ॉल्ट'

Mongoid::Errors::NoSessionConfig: 
Problem: 
    No configuration could be found for a session named 'default'. 
Summary: 
    When attempting to create the new session, Mongoid could not find a session configuration for the name: 'default'. This is necessary in order to know the host, port, and options needed to connect. 
Resolution: 
    Double check your mongoid.yml to make sure under the sessions key that a configuration exists for 'default'. If you have set the configuration programatically, ensure that 'default' exists in the configuration hash. 

: अगर मैं अपने चश्मा चलाने का प्रयास अब मैं निम्नलिखित त्रुटि मिलती है।

यह क्यों है और मैं सामान्य रेल ऐप की तरह कार्यक्षमता कैसे प्राप्त कर सकता हूं जहां मुझे लोड फ़ंक्शन को कॉल करने की आवश्यकता नहीं है?

mongoid.yml

development: 
    sessions: 
    default: 
     database: dummy_development 
     hosts: 
     - localhost:27017 
     options: 
    options: 
test: 
    sessions: 
    default: 
     database: dummy_test 
     hosts: 
     - localhost:27017 
     options: 
     consistency: :strong 
     max_retries: 1 
     retry_interval: 0 

संस्करण:

gem 'rails', '~> 3.2.12' 
gem 'mongoid', '~> 3.1' 
gem 'rspec-rails', '~> 2.13' 
+0

आप अपने mongoid.yml फ़ाइल को पोस्ट कर सकते हैं? –

उत्तर

19

आप शायद अपने spec_helper.rb फ़ाइल में require 'rails/mongoid' याद किया।

किसी को यहाँ https://github.com/mongoid/mongoid/issues/2894#issuecomment-14903927

कि आवश्यकता जोड़ने की कोशिश में एक ही समस्या हो रही है कि यह ठीक करना चाहिए था।

+0

मुझे 'spec_helper.rb' फ़ाइल कहां मिलती है? –

+0

मुझे मोंगोइड + रेल के लिए 'इको' नमूना प्रोजेक्ट में मिला, और मेरे जेनरेट ऐप फ़ोल्डर में 'spec' फ़ोल्डर नहीं था –

+2

spec_helper.rb rspec द्वारा जेनरेट किया गया है, अगर आप rspec का उपयोग नहीं कर रहे हैं, तो इसे डालें आपके आवेदन पर। आरबी –

2

और परिवर्तन करने के बाद सर्वर को पुनः आरंभ करने के लिए mongoid.yml

4

ऐसा इसलिए है क्योंकि दो एक साथ स्थिति का है: (वहाँ mongoid.yml में कोई उत्पादन अनुभाग है) और (Heroku डिफ़ॉल्ट रूप से उत्पादन के रूप में रेल अनुप्रयोगों व्यवहार करता है) ।

किसी को भी ठीक करना पर्याप्त होगा।

1. mongoid.yml में कोई उत्पादन अनुभाग है

mongoid.yml के उत्पादन खंड जोड़ें, के रूप में Heroku में बताया गया है, जैसे कि

production: 
    sessions: 
    default: 
     uri: <%= ENV['MONGOHQ_URL'] %> 
     options: 
     skip_version_check: true 
     safe: true 

2. Heroku व्यवहार करता है विकास के लिए

सेट Heroku पर्यावरण डिफ़ॉल्ट रूप से उत्पादन के रूप में अनुप्रयोगों रेल, या एक एक नया वातावरण जिसमें Heroku के लिए विशिष्ट हो सकता है, के रूप में Heroku में बताया गया है, उदाहरण के लिए जोड़ने

heroku config:set RACK_ENV=development RAILS_ENV=development --remote development 
0

मैं इस काम के मिल गया है - नोटिस कोई "सत्र", केवल "ग्राहकों"

production: 
    clients: 
    default: 
     uri: <%= ENV['MONGODB_URI'] %> 
     options: 
     skip_version_check: true 
     safe: true 
2

यह मेरा मशीन

1 पर मेरे लिए काम किया: करने के लिए इस जोड़े अपने config/application.rb

Mongoid.load!("path to your mongoid.yml") 

2: और अपना मोंगोइड बदलें।से YML उदाहरण के लिए (केवल mongoid संस्करण < 5 के लिए):

यह

development: 
    clients: 
    default: 
     database: database_for_development 
     hosts: 
      - localhost:27017 
test: 
    clients: 
    default: 
     database: database_for_test 
     hosts: 
      - localhost:27017 
production: 
    clients: 
    default: 
     database: database_for_production 
     hosts: 
      - localhost:27017 

करने के लिए:

development: 
    sessions: 
    default: 
     database: database_for_development 
     hosts: 
      - localhost:27017 
test: 
    sessions: 
    default: 
     database: database_for_test 
     hosts: 
      - localhost:27017 
production: 
    sessions: 
    default: 
     database: database_for_production 
     hosts: 
      - localhost:27017