문제

매우 간단한 컨트롤러가 있습니다.

require 'net/ssh'

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

하지만 내가 요청할 때 http : // 서버 : 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에서는 실패합니다.

무엇이 잘못 될 수 있습니까?

도움이 되었습니까?

해결책

이것은 도움이 될 수 있습니다 :

Rails GEM 종속성 및 플러그인 오류

이것은 또한 볼 가치가 있습니다.

RailScasts : GEM 의존성

다른 팁

내가 작업중인 프로젝트에서는 config/renton.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'

Rails 3.0의 경우 OK 인 경우이 솔루션. yourApp/gemfile에 이것을 추가하십시오.

gem 'net-ssh

제 경우에는 독립형 루비 앱이므로 Rubygems 만 필요합니다.

닥터 Nic의``Gemsonrails ''를 사용하고 공급 된 보석을 플러그인으로로드 할 수 있습니다.http://gemsonrails.rubyforge.org

원래 문제는 루트 대신 일반 사용자를 사용했다는 것입니다.

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

그래서 레일은이 보석을 찾을 수 없었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top