'no such file to load — net/ssh' from rails Controller on Ubuntu

笑着哭i 提交于 2019-12-11 04:23:49

问题


I have a very simple controller:

require 'net/ssh'

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

But when I request http://server:3000/my/foo I get:

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

The gem is installed

> gem list net-ssh

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

Also, I tried require 'net/ssh' in IRB, and it works.

MyController works fine on Windows, but fail on Ubuntu.

What can be wrong?


回答1:


This may help:

Rails Gem Dependencies and Plugin Errors

This is also worth watching:

Railscasts: Gem Dependencies




回答2:


In a project I am working on we have used the config/environment.rb file to hold the gem require stuff. So

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

I think you will require 'net-ssh' rather than 'net/ssh'. However we did run into a problem where have a hyphen in the name of the gem led to failures. Then we had to do

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

so that version maybe required for you. So that would be

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



回答3:


in case of rails 3.0 this solution if OK. add this in the yourapp/Gemfile,

gem 'net-ssh



回答4:


In my case, since it's a stand alone ruby app, I only needed to require rubygems.




回答5:


You can also use Dr Nic's ''gemsonrails'' and load vendored gems as plugins, check: http://gemsonrails.rubyforge.org




回答6:


I think, the original problem was that I used normal user instead of 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.

So, I guess, rails could not find this gem.



来源:https://stackoverflow.com/questions/915673/no-such-file-to-load-net-ssh-from-rails-controller-on-ubuntu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!