‘没有这样的文件来加载 – net / ssh’来自Ubuntu上的rails Controller

我有一个非常简单的控制器:

require 'net/ssh' class MyController  'bar' end end 

但当我请求http:// server:3000 / my / foo时,我得到:

 MissingSourceFile in MyController#foo no such file to load -- net/ssh 

gem已安装

 > gem list net-ssh *** LOCAL GEMS *** net-ssh (2.0.11) 

另外,我尝试在IRB中使用’net / ssh’,它可以工作。

MyController在Windows上工作正常,但在Ubuntu上失败。

有什么不对?

这可能有所帮助:

Rails Gem依赖项和插件错误

这也值得一看:

Railscasts:Gem Dependencies

在我正在开发的项目中,我们使用了config / environment.rb文件来保存gem需要的东西。 所以

 Rails::Initializer.run do |config| # ... config.gem 'net-ssh' config.gem 'daemons' config.gem 'slave' config.gem 'vpim' config.gem 'json' # ... end 

我认为你需要’net-ssh’而不是’net / ssh’。 然而,我们遇到了一个问题,即gem名称中的连字符导致失败。 然后我们不得不这样做

  config.gem 'Ruby-IRC', :lib => 'IRC' 

所以你可能需要这个版本。 那就是

  config.gem 'net-ssh', :lib => 'net/ssh' 

如果是rails 3.0这个解决方案,如果可以。 在yourapp / Gemfile中添加它,

 gem 'net-ssh 

在我的情况下,因为它是一个独立的ruby应用程序,我只需要rubygems。

你也可以使用Dr Nic的”gemsonrails”并加载出售的gem作为插件,请查看: http ://gemsonrails.rubyforge.org

我认为,最初的问题是我使用普通用户而不是root用户:

 $ gem install net-ssh WARNING: Installing to ~/.gem since /usr/lib/ruby/gems/1.8 and /usr/bin aren't both writable. WARNING: You don't have /home/alex/.gem/ruby/1.8/bin in your PATH, gem executables will not run. 

所以,我猜,rails无法找到这个gem。