【问题标题】:Why can't i get rake db:migrate to work for ruby.railstutorial.org为什么我不能让 rake db:migrate 为 ruby​​.railstutorial.org 工作
【发布时间】:2011-05-22 23:57:48
【问题描述】:

我决定完成教程。在我创建一个新应用并添加新的user:string email:string 然后在应用目录中执行rake db:migrate 后,我得到这个输出:

rake aborted! 
undefined method `task' for #<DemoApp::Application:0x00000100e49e08>
/usr/local/rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks'
/usr/local/rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks'
/usr/local/rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
/Users/zigloo99/rails_projects/demo_app/Rakefile:7:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/application.rb:495:in `raw_load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/application.rb:78:in `block in load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/application.rb:77:in `load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/application.rb:61:in `block in run'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/lib/rake/application.rb:59:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/gems/rake-0.9.0/bin/rake:31:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin/rake:19:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin/rake:19:in `<main>'

我也在使用 RVM ruby​​ 1.9.2 和 rails 3.0.7,如教程中所示。 有什么想法吗?

【问题讨论】:

  • [demo_app]$ gem query *** LOCAL GEMS *** abstract (1.0.0) actionmailer (3.0.7) actionpack (3.0.7) activemodel (3.0.7) activerecord (3.0. 7) activeresource (3.0.7) activesupport (3.0.7) arel (2.0.10) builder (2.1.2) bundler (1.0.13) erubis (2.6.6) i18n (0.5.0) mail (2.2.19) mime-types (1.16) polyglot (0.3.1) rack (1.2.2) rack-mount (0.6.14) rack-test (0.5.7) rails (3.0.7) railties (3.0.7) rake (0.9. 0) sqlite3-ruby (1.3.2) thor (0.14.6) treetop (1.4.9) tzinfo (0.3.27)

标签: ruby ruby-on-rails-3


【解决方案1】:

发生这种情况是因为最新版本的 Rake (0.9.0) 在 Rails 3.0 应用程序上被破坏,我们目前正在等待可靠的修复。

目前,解决此错误的一种方法是将此行添加到应用程序的Rakefile 中的load_tasks 行上方:

<AppName>::Application.send :include, ::Rake::DSL if defined?(::Rake::DSL)

【讨论】:

    【解决方案2】:

    另一种解决方案是在开始新的 Rails 项目之前在 Gemfile 中要求 rake 0.8.7。

    # Gemfile
    gem 'rake', '0.8.7', :require => 'rake'
    

    然后运行bundle install

    【讨论】:

      猜你喜欢
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2013-06-13
      相关资源
      最近更新 更多