Tôi đã sử dụng dưa chuột trong ứng dụng của tôi, đó là một đường ray 2.2.2 ứng dụng chạy trong ruby 1.8.6 (nâng cấp không phải là một tùy chọn ngay bây giờ). Dưa chuột đã ổn, bây giờ tôi đang cố gắng sử dụng Capybara. Tôi đã cài đặt viên đá quý capybara (1.1.1)
và đặt dòng require 'capybara/rails'
vào số features/support/env.rb file
của tôi."yêu cầu 'capybara/rails'" cho "uninitialized liên tục Rack :: Builder"
Bây giờ, khi tôi chạy dưa chuột, tôi nhận được lỗi này:
Using the default profile...
uninitialized constant Rack::Builder (NameError)
/home/max/.rvm/gems/[email protected]/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:445:in `load_missing_constant'
/home/max/.rvm/gems/[email protected]/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/home/max/.rvm/gems/[email protected]/gems/capybara-1.1.1/lib/capybara/rails.rb:4
/home/max/.rvm/rubies/ruby-1.8.6-p420/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/home/max/.rvm/rubies/ruby-1.8.6-p420/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/home/max/.rvm/gems/[email protected]/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'
/home/max/work/charanga/elearn_container/elearn/features/support/env.rb:10
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/rb_support/rb_language.rb:143:in `load'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/rb_support/rb_language.rb:143:in `load_code_file'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime/support_code.rb:171:in `load_file'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime/support_code.rb:83:in `load_files!'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime/support_code.rb:82:in `each'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime/support_code.rb:82:in `load_files!'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime.rb:137:in `load_step_definitions'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime.rb:39:in `run!'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/cli/main.rb:43:in `execute!'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/cli/main.rb:20:in `execute'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/cucumber:14
/home/max/.rvm/gems/[email protected]/bin/cucumber:19:in `load'
/home/max/.rvm/gems/[email protected]/bin/cucumber:19
Dưới đây là file erroring:
#/home/max/.rvm/gems/[email protected]/gems/capybara-1.1.1/lib/capybara/rails.rb
require 'capybara'
require 'capybara/dsl'
Capybara.app = Rack::Builder.new do
map "/" do
if Rails.version.to_f >= 3.0
run Rails.application
else # Rails 2
use Rails::Rack::Static
run ActionController::Dispatcher.new
end
end
end.to_app
Capybara.asset_root = Rails.root.join('public')
Capybara.save_and_open_page_path = Rails.root.join('tmp/capybara')
Vì vậy, dòng 4 đang tạo ra các lỗi với dòng Rack::Builder.new
. Nhưng tại sao? Ý tưởng nào? Tôi đã cài đặt gem Rack.
cảm ơn, tối đa
Có vấn đề tương tự, ngay sau khi tôi thêm vào spec/spec_helper.rb dòng yêu cầu 'capybara/rails' tôi nhận được thông báo lỗi '/vendor/rails/activesupport/lib/active_support/dependencies.rb:445: trong 'load_missing_constant ': Giá trị không đổi được cố định :: Builder (NameError)' – hebe
Uggrading to 1.8.7 Không phải là một tùy chọn, hay là 1.9/2.0? Nó có thể giải quyết vấn đề của bạn. – fotanus