Ubuntu의 Rails 컨트롤러에서 '그러한 파일이로드되지 않음 - Net/Ssh'
-
06-09-2019 - |
문제
매우 간단한 컨트롤러가 있습니다.
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에서는 실패합니다.
무엇이 잘못 될 수 있습니까?
해결책
다른 팁
내가 작업중인 프로젝트에서는 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.
그래서 레일은이 보석을 찾을 수 없었습니다.
제휴하지 않습니다 StackOverflow