我最近在我的Gemfile上运行了一个bundle install,并尝试rake:db:migrate。此迁移不起作用,并输出:
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 SampleApp::Application#task called at /Users/joshuaballoch/.rvm/gems/ruby-1.9.2-p180@rails3tutorial3/gems/railties-3.0.3/lib/rails/application.rb:214:in `initialize_tasks'
我在另一篇文章中读到我应该卸载0.9.1,但由于某些原因我卸载后需要0.9.1的一些gem,所以我不知道如何解决这个问题。有什么建议吗?
我的宝石文件是:
source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'
gem 'gravatar_image_tag', '1.0.0.pre2'
gem 'will_paginate', '3.0.pre2'
group :development do
gem 'rspec-rails', '2.3.0'
gem 'annotate-models', '1.0.4'
gem 'faker', '0.3.1'
end
group :test do
gem 'rspec', '2.3.0'
gem 'webrat', '0.7.1'
gem 'factory_girl_rails', '1.0'
end
答案 0 :(得分:3)
您是否尝试过这样运行:bundle exec rake db:migrate
bundle exec命令在捆绑包定义的环境中运行您的请求,因此如果您的全局宝石不同,这可能会有所帮助。
如果没有,您可以将gem "rake", "0.8.7"
添加到您的gem文件bundle install
,然后再试一次。你仍然应该满足你的其他依赖,因为你没有删除0.9.1,只是要求bundle exec使用不同的版本。
答案 1 :(得分:1)
Rails 3.0.8昨天发布,包括"Fixing Rake 0.9.x integration"。值得一试。