‘没有这样的文件来加载 – 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。