Я обновляюсь до Rails 3.2, и при запуске rake db: migrate выдает несколько ошибок вида:
ПРЕДУПРЕЖДЕНИЕ О УСТАРЕВАНИИ: У вас есть плагины в стиле Rails 2.3 вендора / плагинов! Поддержка этих плагинов будет удалена в Rails 4.0. Извлеките их и объедините в своем Gemfile или сложите в свое приложение как lib / myplugin / * и config / initializers / myplugin.rb. Для получения дополнительной информации см. Примечания к выпуску: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released . (вызывается из / app / Rakefile: 7)
Что сбивает с толку, так это то, что мой vendor/plugins
каталог пуст - есть ли другой каталог плагинов, на который он ссылается?
ruby-on-rails
heroku
ruby-on-rails-plugins
fearless_fool
источник
источник
Ответы:
Вы используете Heroku?
Камень rails_12factor также требуется в рельсах 4.
Еще в 2013-08 году heroku всегда вставлял плагины в приложения rails 3, даже в приложения с рекомендованными драгоценными камнями. Эта проблема была связана с пакетом сборки ruby и была исправлена в PR 11 , объединенном 2013-08-06.
источник
Можешь попробовать
в твоем,
production.rb
так как это просто шум.источник
ActiveSupport::Deprecation.behavior = Proc.new { |msg, stack| $stderr.puts msg unless msg =~ /You have Rails 2.3-style plugins/ }
в config / environment.rb добавьте:
перед инициализацией рельсов, вот так:
Аналогично, чтобы отключить предупреждения в задачах rake, вставьте конфиг молчания в верхней части Rakefile:
Вы можете по желанию обернуть это в блок, чтобы только тишина в производстве:
источник
Лучший подход, который я нашел, задокументирован здесь . Это предполагает , что вы искали и нашли этот вопрос , потому что делать есть плагины в старом стиле.
Я пошел с « Сделать это вообще не жемчужиной» , потому что мне нужно было включать / выключать плагины во время моего развертывания в Capistrano, в зависимости от того, какой вариант приложения я развертывал. Ранее я использовал config.plugins, чтобы указать, какой плагин использовать. При таком подходе я вместо этого использую «require» в config.before_configuration.
источник
Просто поместите следующий патч обезьяны в
/lib/silence_heroku_warnings.rb
и требует его
config/application.rb
сразу после того, как требуется Rails:Все устаревшие плагины в стиле 2.x должны быть отключены. Другие амортизации появятся.
источник
Более чистый способ, чем просто отключение предупреждений, вот что вы можете сделать.
Для инъекции в логгер вы можете попробовать использовать новый драгоценный камень Heroku, который Джаред Бек упомянул в своем ответе выше .
Вместо этого мы сделали следующее:
Вы можете запретить Heroku внедрять свои собственные плагины, если в вашей
vendor/plugins
папке есть каталог с таким же именем . Папка просто должна существовать. Тогда Heroku не будет вставлять свой плагин, и если кода нет, Rails не будет возражать с предупреждениями об устаревании. Мы просто поместили файл readme, объясняющий это в:Назначение подключаемого модуля Heroku для ведения журнала - включить ведение журнала в стиле Heroku (для этого необходимо отправлять журналы в STDOUT, а не в файл). Чтобы вернуть это, мы сделали то, что я описал в этом ответе . Так или иначе, для Unicorn требовалось настроить поведение Heroku по умолчанию, поэтому мы получили двух зайцев в одном камне.
источник
.gitkeep
vendor / plugins / rails_log_stdout.gitkeep
- это соглашение о том, чтобы при использовании git хранить пустой каталог..gitkeep
это соглашение.Новый способ заставить замолчать уведомления об устаревании:
в вашем
config/environments/production.rb
файле.источник
Похоже, что Heroku наконец-то решил эту проблему.
источник