Как взломать boot.rb чтобы перестать раздражать предупреждением? Gem :: SourceIndex # поддержка поиска для шаблонов String устарела - PullRequest
2 голосов
/ 28 декабря 2008

Каждый раз, когда я запускаю рейк или большинство команд rails, я получаю досадное предупреждение. Я все еще новичок в Ruby / Rails, и я хотел бы получить совет о том, как взломать boot.rb, чтобы остановить раздражающее предупреждение. Я использую Rails 1.2.6 и RubyGems 1.3.1. (Я не обновил Rails до 2.x, потому что я все еще изучаю Rails из книги, которая использует 1.2.x.) Я благодарен за любой совет. Я не смог найти решение через поиск в Google. Спасибо!

boot.rb строка 20:

rails_gem = Gem.cache.search('rails', "=#{rails_gem_version}.0").sort_by { |g| g.version.version }.last

Раздражающее сообщение:

boot.rb:20:Warning: Gem::SourceIndex#search support for String patterns is deprecated

Ответы [ 3 ]

7 голосов
/ 31 декабря 2008

В boot.rb есть вызов Gem Source Index: «Gem.cache.search», просто замените «search» на «find_name».

0 голосов
/ 08 июля 2010

Ответ продолжает давать. Благодарю. Это сводило меня с ума.

Что касается обновлений до более новых версий, книга (Agile Development) не работает с более новые версии.

Кроме того, я часто делаю рейк db: migrate. Я не знаю как задушить в этом случае вызовите ruby ​​-W0.

0 голосов
/ 28 декабря 2008

Во-первых, вы должны исследовать подход, который бы убрал предупреждение (например, обновление рельсов или камней-рубинов), вместо того, чтобы подавлять , если возможно . Во-вторых, в соответствии с документами для метода warn (http://www.ruby -doc.org / core / classes / Kernel.html # M006017 ) вы можете подавить его, вызвав / usr / bin / ruby ​​с помощью - Флаг W0. Также обратите внимание, что это сообщение передается в STDERR, поэтому вы можете использовать обычные методы перенаправления unix (например, для перенаправления его в / dev / null или, что еще лучше, в файл warnings.log)

...