2009-05-27 3 views
1

J'ai un contrôleur très simple:'pas de fichier à charger - net/ssh' des rails Controller sur Ubuntu

require 'net/ssh' 

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

Mais quand je demande http://server:3000/my/foo je reçois:

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

Le gem est installé

> gem list net-ssh 

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

En outre, j'ai essayé d'exiger 'net/ssh' dans IRB, et cela fonctionne. MyController fonctionne correctement sous Windows, mais échoue sous Ubuntu.

Qu'est-ce qui ne va pas?

+0

Cette erreur se produit sur une nouvelle installation de Mac OS Leopard - J'ai eu exactement la même question d'essayer d'utiliser le net SFTP par défaut. – Justicle

Répondre

3

Dans un projet sur lequel je travaille nous avons utilisé le fichier config/environment.rb à tenir la gemme besoin de choses. Donc

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

Je pense que vous aurez besoin de 'net-ssh' plutôt que 'net/ssh'. Cependant, nous avons rencontré un problème où un trait d'union dans le nom de la gemme a conduit à des échecs. Ensuite, nous devions faire

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

de sorte que cette version peut-être nécessaire pour vous. Donc, ce serait

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

Vous pouvez également utiliser le Dr Nic de « » gemsonrails « » et charger des pierres précieuses vendored sous forme de plugins, vérifiez: http://gemsonrails.rubyforge.org

0

Je pense que le problème initial était que je utilisateur normal à la place de la racine:

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

Donc, je suppose, les rails ne pouvaient pas trouver cette gemme.

1

Dans mon cas, puisque c'est une application ruby ​​autonome, j'ai seulement besoin d'exiger des rubygems.

2

dans le cas de rails 3.0 cette solution si OK. ajouter ceci dans le yourapp/Gemfile,

gem 'net-ssh 
Questions connexes