以前の案件の Rails アプリケーションで
# rake db:migrate
を実行してみたところ、うまく動くは動くのだが
[RAILS_APP]/config/boot.rb:26:Warning: Gem::SourceIndex#search support for String patterns is deprecated
という Warning メッセージが出る。
config/boot.rb の26行目
rails_gem = Gem.cache.search('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last
を
rails_gem = Gem.cache.find_name('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last
に修正すれば、Warning は消える。
に詳細が書かれている。
In the source for the rake task, the code is calling the search method for the Gem SourceIndex. This method matches anything that has the pattern of the string passed in, in this case "rails" which would include any gem starting with the string "rails." I have patched this code to use the find_name method that returns the exact match of the string that is passed in; in this case, "rails."
search メソッドだと、rails で始まるすべての gem にマッチしてしまうので、"rails" gem だけにマッチさせるよう find_name に変更された、とのこと。
2009/03/18 09:48:19