2016-02-10 10 views
0

Я не могу заставить самородку 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

Существует исправление для выпуска рубинового драгоценных камней, перечисленных здесь. https://github.com/rubygems/rubygems/issues/1420#issuecomment-169178431

Он еще не слит с мастером. Вы можете либо понизить рубиновые камни, либо применить патч.

+0

Уменьшение рубигемов до 2.5.0 позволяет машинным машинам нормально работать, спасибо! – Ryan

+0

Как [указано] (https://github.com/rubygems/rubygems/issues/1420#issuecomment-256350006) в __rubygems/issues/# 1420__ эта проблема может быть исправлена ​​автоматически, просто запуская 'gem update -system '. –

0

У меня такая же проблема с другим Gem, проблема исходит от ruby ​​2.3.0. Вы должны перейти на 2.2.3 или сообщить об ошибке.

Это похоже приходит из rubygemshttps://github.com/rubygems/rubygems/issues/1420