« Pas de fichier à charger - net / ssh » des rails Controller sur Ubuntu
-
06-09-2019 - |
Question
J'ai un contrôleur très simple:
require 'net/ssh'
class MyController < ApplicationController
def foo
render :text => 'bar'
end
end
Mais quand je demande http: // serveur: 3000 / ma / foo je reçois:
MissingSourceFile in MyController#foo
no such file to load -- net/ssh
Le bijou est installé
> gem list net-ssh
*** LOCAL GEMS ***
net-ssh (2.0.11)
En outre, j'ai essayé require 'net / ssh' dans la CISR, et il fonctionne.
MyController fonctionne très bien sur Windows, mais échouent sur Ubuntu.
Que peut-on mal?
La solution
Cela peut aider:
Rails Gem dépendances et erreurs Plugin
Ceci est également intéressant de regarder:
Railscasts: Gem dépendances
Autres conseils
Dans un projet sur lequel je travaille, nous avons utilisé le fichier config / environment.rb pour contenir la gemme exigent des 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 'net-ssh' plutôt que 'net / ssh'. Toutefois, nous avons rencontré un problème où ont un trait d'union au nom de la pierre conduit à des échecs. Ensuite, nous avons dû faire
config.gem 'Ruby-IRC', :lib => 'IRC'
de telle sorte que la version nécessaire peut-être pour vous. Donc, ce serait
config.gem 'net-ssh', :lib => 'net/ssh'
en cas de rails 3,0 cette solution si OK. ajouter ceci dans le yourapp / Gemfile,
gem 'net-ssh
Dans mon cas, car il est une application rubis autonome, je ne avais besoin d'exiger rubygems.
Vous pouvez également utiliser « gemsonrails » Dr Nic de « » et charger des pierres précieuses vendored sous forme de plugins, consultez: http://gemsonrails.rubyforge.org
Je pense que le problème initial était que je utilisateur normal au lieu 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.
Alors, je suppose, les rails ne pouvaient pas trouver ce petit bijou.