2009-05-27 77 views
1

我有一個非常簡單的控制器:'沒有這樣的文件來加載 - 網/ SSH' 從軌道器上的Ubuntu

require 'net/ssh' 

class MyController < ApplicationController 
    def foo 
     render :text => 'bar' 
    end 
end 

但是,當我要求http://server:3000/my/foo我得到:

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

的寶石已安裝

> gem list net-ssh 

*** LOCAL GEMS *** 
net-ssh (2.0.11) 

此外,我試圖在IRB中需要'net/ssh',它的工作原理。

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

什麼可能是錯的?

+0

這個錯誤發生在一個新的安裝Mac OS豹的 - 我曾試圖使用默認的淨SFTP完全相同的問題。 – Justicle 2009-10-27 05:39:23

回答

3

在一個項目中,我對我們的工作已經使用到config/environment.rb文件持有寶石需求的東西。所以

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'。然而,我們遇到了一個問題,那就是在寶石名稱中使用連字符導致失敗。然後我們不得不做

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

因此,版本可能需要你。因此,這將是

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

我認爲,原來的問題是,我使用的普通用戶,而不是根:

$ 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. 

所以,我猜,鐵軌找不到這個寶石。

1

在我的情況下,因爲它是一個獨立的ruby應用程序,我只需要rubygems。

2

如果導軌3.0 此解決方案,如果確定。 在yourapp/Gemfile中添加此,

gem 'net-ssh 
相關問題