我无法在简单的测试程序中使用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以及所有的宝石,但我无法完成这项工作。有人能指出我正确的方向吗?
-Russ
答案 0 :(得分:7)
Rails 3默认使用Bundler,这意味着您需要在Gemfile
中指定所有依赖项,如下所示:
gem "eventmachine"
(安装未通过bundle install
安装的任何内容。)
Bundler处理依赖关系管理,这意味着您可以锁定您的gem版本,并避免冲突,但相反,这意味着它将加载未在您的Gemfile中指定的任何内容。
这也意味着如果你想在比webrick更好的东西上运行你的开发网络服务器,你可能想要在你的gemfile中添加这样的东西
group :development do
gem 'mongrel'
gem 'ruby-debug'
end
答案 1 :(得分:0)
您是否尝试将其放入rails app的gemfile并进行捆绑安装?
答案 2 :(得分:0)
在Windows中删除Ruby x64。 重新安装Ruby x86。
查看者。 https://github.com/eventmachine/eventmachine/blob/master/ext/extconf.rb#L78-L90