Не удается загрузить Ruby EventMachine в консоли Rails - такой файл не загружается - PullRequest
1 голос
/ 12 ноября 2010

Я не могу требовать EventMachine в простой тестовой программе.Я использую Ruby 1.9.2 (x86_64-darwin10.4.0) и Rails 3.0.1.EventMachine установлен (через gem install eventmachine) и gem знает это:

gem list --local

*** LOCAL GEMS ***

abstract (1.0.0)
...
erubis (2.6.6)
eventmachine (0.12.10)
i18n (0.4.2)
...
tzinfo (0.3.23)

Тем не менее, когда я запускаю консоль rails (через rails console) и просто требую eventmachine, он взрывается:


ruby-1.9.2-p0 > require 'rubygems'
 => nil 
ruby-1.9.2-p0 > require 'eventmachine'
LoadError: no such file to load -- eventmachine
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.1/lib/active_support/dependencies.rb:239:in 'require'
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.1/lib/active_support/dependencies.rb:239:in 'block in require'
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.1/lib/active_support/dependencies.rb:225:in 'block in load_dependency'
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.1/lib/active_support/dependencies.rb:591:in 'new_constants_in'
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.1/lib/active_support/dependencies.rb:225:in 'load_dependency'
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.1/lib/active_support/dependencies.rb:239:in 'require'
    from (irb):2
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:44:in 'start'
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:8:in 'start'
    from /Users/russ/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands.rb:23:in '<top (required)>'
    from script/rails:6:in 'require'
    from script/rails:6:in '<main>'

Я получаю тот же результат, пытаясь запустить метод в классе, который требует EventMachine.EventMachine построен без ошибок.Я снова и снова удалял EventMachine и Ruby и все драгоценные камни, но я не могу сделать эту работу.Кто-нибудь может указать мне правильное направление?

-Русс

Ответы [ 3 ]

7 голосов
/ 12 ноября 2010

Rails 3 по умолчанию использует Bundler, это означает, что вам нужно указать все свои зависимости в Gemfile, например:

gem "eventmachine"

(установить не установленоvia bundle install).

Bundler обрабатывает управление зависимостями, что означает, что вы можете заблокировать свои версии гемов и красиво избегать конфликтов, но, наоборот, это означает, что не будет загружать все, чтоне указан в вашем Gemfile.

Это также означает, что если вы хотите запустить свой веб-сервер разработки на чем-то более приятном, чем webrick, вы также можете добавить что-то подобное в свой gemfile

group :development do
  gem 'mongrel'
  gem 'ruby-debug'
end
0 голосов
/ 03 января 2014

Удалить Ruby x64 в windows. Переустановите Ruby x86.

ПРОСМОТР. https://github.com/eventmachine/eventmachine/blob/master/ext/extconf.rb#L78-L90

0 голосов
/ 12 ноября 2010

Вы пытались поместить его в гем-файл вашего rails-приложения и выполнить установку пакета?

...