"нет такого файла для загрузки — net / ssh" с контроллера rails в Ubuntu
-
06-09-2019 - |
Вопрос
У меня есть очень простой контроллер:
require 'net/ssh'
class MyController < ApplicationController
def foo
render :text => 'bar'
end
end
Но когда я прошу http://server: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)
Кроме того, я попробовал require 'net / ssh' в IRB, и это работает.
MyController отлично работает в Windows, но терпит неудачу в Ubuntu.
Что может быть не так?
Решение
Это может помочь:
Зависимости Rails Gem и ошибки плагина
На это тоже стоит посмотреть:
Железнодорожные Трансляции:Зависимости от драгоценных камней
Другие советы
В проекте, над которым я работаю, мы использовали файл config / environment.rb для хранения требуемых материалов gem.Итак
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 это решение, если все в порядке.добавьте это в yourapp/Gemfile Файл,
gem 'net-ssh
В моем случае, поскольку это отдельное приложение ruby, мне нужно было всего лишь запросить rubygems.
Вы также можете использовать "gemsonrails" от Dr Nic и загружать продаваемые драгоценные камни в качестве плагинов, проверьте:http://gemsonrails.rubyforge.org
Я думаю, первоначальная проблема заключалась в том, что я использовал обычного пользователя вместо 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.
Так что, я думаю, rails не смогли найти этот драгоценный камень.