私は3.1へのアップグレードを進めています。rspec/rakeの問題 - Rake :: DSLのグローバルメソッドが何とか私のモデルを壊している
私は明らかにRakeによって上書きされる 'リンク'メソッドを持つモデル(Mongoidを使用しています)を持っています。私はこのメッセージを受け取っています:
WARNING: Global access to Rake DSL methods is deprecated. Please include
... Rake::DSL into classes and modules which use the Rake DSL methods.
WARNING: DSL method Profile#link called at /Users/jeffdeville/Documents/code/ruby/wg/app/models/profile.rb:62:in `block in eql?'
このメソッドは解決されているので、私はスタックトレースまたは何も持っていません。これは私のrspecsで起こりますが、問題はコンソールでは起こりません。
ジェムファイルは以下のとおりです。
答えがわからない場合でも、私がここでどのようにデバッグプロセスにアプローチするかについての提案があれば、それは素晴らしいことでしょう。
api_client = API::Client
api_model = 'task' #this is dynamic in reality...
api_client.send(api_model).list
熊手のグローバルDSL タスク方法が何らかの理由で送信をつかうましたが、呼び出しが働いていた:私は、以下のなかったとき、私は同様の問題を抱えていた
source 'http://rubygems.org'
gem 'rails', "3.1.0"
gem 'rake'
gem 'mail'
gem 'compass', "~> 0.12.alpha.0"
gem 'jquery-rails'
gem 'haml-rails'
gem "html5-boilerplate"
gem 'mini_fb', :git => 'git://github.com/jeffdeville/mini_fb.git'
gem "json"
gem "bson"
gem "bson_ext"
gem 'sucker'
gem 'crack', :git => 'git://github.com/ericgj/crack.git'
gem 'hoptoad_notifier'
gem 'httparty'
gem 'facebooker2'
gem 'delayed_job'
gem 'delayed_job_mongoid'
gem 'unicorn'
gem 'hirefireapp'
gem 'mogli', :git => 'https://github.com/jeffdeville/mogli.git'
gem 'typhoeus'
gem 'koala'
gem 'foreman'
gem 'heroku'
gem 'rbing'
gem 'rmagick'
gem 'mini_magick'
gem 'aws-sdk'
gem 'mechanize'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
group :development, :test do
gem 'awesome_print'
gem 'pry'
end
group :development do
gem 'rails3-generators'
gem 'coffee-script'
gem 'guard'
gem 'guard-coffeescript'
gem 'guard-livereload'
gem 'guard-rspec'
gem 'guard-spork'
gem 'guard-bundler'
gem 'mailcatcher'
gem 'foreman'
end
group :test do
gem "factory_girl_rails"
gem 'fuubar'
gem 'spork', '~> 0.9.0.rc'
gem 'ruby-debug19'
gem "rspec"
gem "rspec-given"
gem "rspec-rails"
gem 'mocha'
gem "bourne"
gem 'webmock'
gem 'vcr'
gem 'jasmine'
gem 'email_spec'
gem 'timecop'
end
group :mac do
# if RUBY_PLATFORM =~ /darwin/i
gem 'rb-fsevent'
gem 'growl'
# end
end
はどうなりますか?あなたが安全にそれを行うことができるかどうかは分かりませんが、それは私が始めようとしている場所です - 'link'が定義されているようで、もはや使用できません。 –
方法がどこから来るかを検査するいくつかの方法があります。これはデバッグに役立つかもしれません。 pryを使い、メソッドの所有者またはsource_location(ルビ1.9)を見てください – phoet