Ответ 1
Удаление test
в файле .slugignore
работает для меня.
У меня возникает следующая ошибка при запуске консоли в heroku (heroku run console
...). Приложение работает без проблем, но я, похоже, не могу запустить консоль из-за этого и в разработке. У меня нет этой проблемы.
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- test/unit/testcase (LoadError)
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/test_case.rb:1:in `<top (required)>'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/console/app.rb:2:in `<top (required)>'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:304:in `initialize_console'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:152:in `load_console'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:27:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands/console.rb:8:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Это мой Gemfile:
source 'http://rubygems.org'
ruby '1.9.3'
gem 'rails', '3.2.9'
gem 'oauth', '~> 0.4.4'
gem 'twitter', '~> 1.4.1'
gem 'sendgrid'
gem 'koala'
gem 'therubyracer', '0.10.2'
gem 'execjs'
# Rails 3.1 - Asset Pipeline
gem 'json'
group :assets do
gem 'sass-rails', " >= 3.2.3"
gem 'coffee-rails', ">= 3.2.1"
gem 'uglifier', '>= 1.0.3'
gem 'bootstrap-sass'
end
gem 'coffee-script'
gem 'jquery-rails'
gem "fog"
gem 'bootstrap-wysihtml5-rails', '0.3.1.10'
group :production do
gem "heroku"
gem 'pg', '0.13'
gem 'newrelic_rpm'
gem 'newrelic_api'
end
group :test do
gem 'email_spec'
gem "cucumber-rails"
gem "rspec-rails"
gem "capybara"
gem 'culerity'
gem "selenium-webdriver"
gem "database_cleaner"
gem 'factory_girl_rails'
end
group :development, :grades, :test do
gem "launchy"
gem "mysql2"
gem "letter_opener"
gem "pry"
gem "rails-erd"
end
gem "airbrake"
gem "authlogic"
gem 'awesome_print'
gem 'cancan'
gem 'dalli'
#gem "oink"
gem 'validates_timeliness', '~> 3.0.2'
gem 'hpricot'
gem "ruby_parser"
gem "prawn_rails"
gem "thin"
gem "nested_form", :git => "git://github.com/ryanb/nested_form.git"
gem "meta_search"
gem "carrierwave"
gem "aws-s3"
gem "mini_magick"
gem 'will_paginate'
gem "spreadsheet"
gem "oauth-plugin", ">= 0.4.0.pre1"
gem 'flash_cookie_session'
gem 'haml-rails'
gem 'squeel'
gem 'rails_best_practices', :group => :development
gem 'simple_form'
gem 'taps', :group => :development
gem 'resque'
gem "audited-activerecord", "~> 3.0"
gem "lograge"
gem 'quiet_assets'
gem 'yajl-ruby', :require => "yajl"
gem 'switch_user'
Я понятия не имею, почему я получаю эту ошибку. Есть предположения? Благодаря
Удаление test
в файле .slugignore
работает для меня.
С Rails 3.1.12 и Ruby 2.2.0 мне пришлось добавить
gem 'test-unit'
на мой Gemfile
.
По-видимому, Heroku изменил способ интерпретации файла .slugignore
.
В моем случае у меня был каталог rpc
в .slugignore
, и он уничтожил подкаталог rpc
одного из драгоценных камней моего приложения, в зависимости от того, что привело к LoadError
. Я не уверен, что Героку сделал это изменение намеренно. Независимо от того, работает ли .slugignore
так, как ожидалось, удаление затронутых строк из .slugignore
должно устранить проблему на данный момент.
P.S. Я поднял билет поддержки в Хероку.
ОБНОВЛЕНИЕ:. В соответствии с поддержкой Heroku были внесены некоторые изменения в синтаксический анализ .slugignore
, чтобы сделать его более согласованным с .gitignore
, и он работает по назначению. Правильный способ только удалить каталог верхнего уровня - вместо этого поставить /rpc
.
Удаление тестового каталога из .slugignore устраняет проблему
Удалить тестовый каталог из .slugignore
Мы также столкнулись с этой проблемой сегодня. Я подозреваю, что что-то должно было измениться в сборке сборки Heroku Ruby.
Для нас возникла проблема с прототипами-рельсами, пытающимися загрузить ActionView::TestCase
, что в свою очередь требует test/unit/testcase
. Патч довольно прост и доступен в виде fork.
Если вы используете Bundler, вам может понадобиться что-то вроде:
gem 'prototype-rails', :git => 'git://github.com/ennova/prototype-rails.git'
Я попытался отключить многопоточность (закомментируйте config.threadsafe!) и, похоже, работает до тех пор, пока герою не начнет действовать вместе.