简体   繁体   中英

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

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?

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'

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

gem 'net-ssh

就我而言,由于它是一个独立的ruby应用程序,所以我只需要rubygems。

This may help:

Rails Gem Dependencies and Plugin Errors

This is also worth watching:

Railscasts: Gem Dependencies

您还可以使用Nic博士的“ gemsonrails”并将加载的宝石作为插件加载,请检查: http ://gemsonrails.rubyforge.org

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM