سؤال

أريد استخدام الإصدار الحالي من باندلر (كانت هناك بعض التغييرات من 0.8 إلى 0.9) إلى جولج الأحجار الكريمة من تطبيقات القضبان الخاصة بي. أولا أنشأت Gemfile في جذر مجلد التطبيق وإضافة جميع الأحجار الكريمة المطلوبة إليها. ثم وضعت (كما يوصى به في الدليل) التعليمات البرمجية التالية إلى بلدي config/environment.rb:

begin
  # Require the preresolved locked set of gems.
  require File.expand_path('../.bundle/environment', __FILE__)
rescue LoadError
  # Fallback on doing the resolve at runtime.
  require "rubygems"
  require "bundler"
  Bundler.setup
end

bundle install يبدو أن تعمل بشكل جيد كما انتهى Your bundle is complete!. وبعد ولكن عند بدء تشغيل تطبيقي، احصل على الخطأ التالي:

$ ruby script/server  
=> Booting WEBrick
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:443:in `load_missing_constant': uninitialized constant CouchRest (NameError)
        from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in `const_missing'
        from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:92:in `const_missing'
        from /home/kuf/data/Arbeit/Decodon/2009-05-08-Project_Orange/orangemix/fuse/config/initializers/couchdb.rb:35
        from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:145:in `load_without_new_constant_marking'
        from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:145:in `load'
        from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in'
        from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:145:in `load'
        from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:622:in `load_application_initializers'
         ... 11 levels...
        from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:84
        from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from script/server:3

ما هو الخطأ هنا؟

هل كانت مفيدة؟

المحلول

Arrrg، دفعت زر الإرسال فقط ولدي فكرة حل المشكلة. يقول دليل Bundler: [...] تشمل ما يلي في بداية التعليمات البرمجية الخاصة بك." للحصول على تطبيق القضبان، يجب عليك وضع الجزء المذكور في أسفل config/environment.rb للحصول على إعداد كل شيء بشكل صحيح من قبل:

RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION

require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
...
end

# Put the bundler related stuff here!
begin
  # Require the preresolved locked set of gems.
  require File.expand_path('../.bundle/environment', __FILE__)
rescue LoadError
  # Fallback on doing the resolve at runtime.
  require "rubygems"
  require "bundler"
  Bundler.setup
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top