Я не могу заставить самородку Engine Yard работать в моем приложении Rails. Я построил его поверх базовых элементов, которые я собрал, следуя первым десяти главам руководства Майкла Хартла Ruby on Rails (третье издание). Пока он отлично подходит для Heroku, я хочу переключиться на Engine Yard.Самоходный моторный самоход, который не работает; find_active_stub_by_path Reports Undefined Method 'this'
Здесь ошибка я получаю в любое время я называю еу:
~/workspace (development) $ ey --help
/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:2158:in `method_missing': undefined method `this' for #<Gem::Specification:0x52e978 engineyard-3.2.1> (NoMethodError)
from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:1057:in `find_active_stub_by_path'
from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:64:in `require'
from /usr/local/rvm/gems/ruby-2.3.0/gems/engineyard-3.2.1/bin/ey:3:in `<top (required)>'
from /usr/local/rvm/gems/ruby-2.3.0/bin/ey:23:in `load'
from /usr/local/rvm/gems/ruby-2.3.0/bin/ey:23:in `<main>'
from /usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
from /usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
Ruby documentation, кажется, указывает, что engineyard драгоценный камень не может быть найден, но я не пришел, чтобы понять, почему.
Драгоценный камень Engine Yard отлично работает, когда я запускаю новый проект локально, когда я запускаю новый проект на Cloud 9 или когда я нажимаю новый проект на репо, а затем клонирую его в отдельную учетную запись Cloud 9. Тем не менее, я получаю идентичные ошибки в других трех приложениях, которые я построил после учебника Hartl, в том числе приветствия мирового приложения из главы 1.
Я попытался определить, что создает эту проблему, перейдя в Главу 1 снова с новым проектом , К сожалению, мое воссоздание приветственного приложения Hartl для мира отлично работает с драгоценным камнем. (Прохождение этого отдыха ниже.)
'gem pristine -all' не влияет на эту ошибку.
Я связался с командой поддержки двигателя Yard в течение недели, и проблема, похоже, не принадлежит драгоценному камню. Поскольку я могу без проблем работать с машинным ядром на других облачных 9 рабочих пространствах, это не проблема с Cloud 9.
Что вызывает эту ошибку и как ее исправить?
Мои усилия репликации ошибка
Примечание: Как отмечено в the engineyard gem documentation, камень не должен быть включен в Gemfile.
На С9, создать общественную рабочую область на рамках Руби (именуемых в A), затем установите мерзавец и нажмите на BitBucket от А без запуска «$ расслоения установить»
Теперь создайте второе рабочее пространство на индивидуальном счет на C9 (обозначаемый B) на каркасе Ruby и клонировать его из репо.
B$ gem install engineyard
B$ ey --help [this was SUCCESSFUL]
B$ bundle install
B$ ey --help [this was SUCCESSFUL]
Теперь установите драгоценный камень для моторного масла на А и проверьте его.
A$ bundle install
A$ gem install engineyard
A$ ey --help [this was SUCCESSFUL]
Теперь проверьте Gemfile в листинге 1.5, который используется мой привет мир приложения, которое в настоящее время неисправного. Заменить содержание Gemfile в рабочем пространстве А с этим в листинге 1.5:
gem 'rails', '4.2.0'
gem 'sass-rails', '5.0.1'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.2.3'
gem 'sdoc', '0.4.0', group: :doc
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
end
Теперь запустите это:
A$ bundle install
A$ ey --help [this was SUCCESSFUL]
A$ git add -A
A$ git commit -m "Make Gemfile equal to Hartl's Listing 1.5"
A$ git push
B$ git pull
B$ bundle install
B$ ey --help [this was SUCCESSFUL]
Так эта версия Gemfile в листинге 1.5 не является проблематичным.
В пункте 1.3.2 говорится, что мы запускаем сервер рельсов, который не работает с sass-rails 5.0.1. Я заменил 5.0.1 5.0.2 в моем существующем/завершенном приветственном мире (как это было в моем реальном проекте).Теперь выполните то же самое обновление на А и В (через хранилище) ...
На А, обновление Gemfile к этому:
gem 'rails', '4.2.0'
gem 'sass-rails', '5.0.2'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.2.3'
gem 'sdoc', '0.4.0', group: :doc
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
end
Теперь запустите этот:
A$ bundle install
A$ ey --help [this was SUCCESSFUL]
A$ git add -A
A$ git commit -m "Upgrade sass-rails to 5.0.2"
A$ git push
B$ git pull
B$ ey --help [this was SUCCESSFUL]
Теперь на рабочем пространстве A запустите сервер rails, как в листинге 1.7, отредактируйте application_controller, как в листинге 1.8, измените маршруты, как показано в листинге 1.10, и протестируйте его. Работает так, как ожидалось. Теперь нажмите и испытайте на B ...
A$ ey --help [this was SUCCESSFUL]
A$ git add -A
A$ git commit -m "Listings 1.7, 1.8, and 1.10"
A$ git push
B$ git pull
B$ ey --help [this was SUCCESSFUL]
Уменьшение рубигемов до 2.5.0 позволяет машинным машинам нормально работать, спасибо! – Ryan
Как [указано] (https://github.com/rubygems/rubygems/issues/1420#issuecomment-256350006) в __rubygems/issues/# 1420__ эта проблема может быть исправлена автоматически, просто запуская 'gem update -system '. –