【问题标题】:Rake 0.9.0 'undefined method 'task' ' [duplicate]Rake 0.9.0'未定义的方法'任务'' [重复]
【发布时间】:2011-05-20 18:09:50
【问题描述】:

Gemfile 只包含 rails 3.0.7 和 sqlite3,突然间 rake 不会在任何应用程序上运行。运行 'rake db:migrate' 时出现错误 完整的跟踪输出:

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

【问题讨论】:

标签: ruby-on-rails-3 rake


【解决方案1】:

我做了:sudo gem uninstall rake -v 0.9 然后将gem 'rake', '0.8.7' 添加到我的 gem 文件中。

【讨论】:

    【解决方案2】:

    您可以通过添加以下行来修复您的 application.rb 文件,而不是降级您的 Rake:

    include Rake::DSL
    

    只需将其添加到类 Application 中,您就可以了!

    示例应用程序.rb:

    module AppName
      class Application < Rails::Application
       include Rake::DSL
      end
    end
    

    【讨论】:

      【解决方案3】:

      gem 'rake', '0.8.7' 在 Gemfile 工作,如果 bundler 抱怨 rake locked '0.9.0' 可能还需要运行 bundle update rake

      这是 rake github 页面上的问题 https://github.com/jimweirich/rake/issues/33

      【讨论】:

        【解决方案4】:

        我在 jruby 上。以下是让我摆脱问题的确切命令。

        jruby -S gem uninstall rake
        jruby -S gem install rake -v 0.8.7
        

        编辑 Gemfile:在 gem 'rails' 之后添加:

        gem 'rake', '0.8.7'
        

        最终运行:

        jruby -S bundle update rake
        

        【讨论】:

          【解决方案5】:

          在命令提示符下运行这两行。它将删除 rake 0.9.0。 在显示“用户名”的地方替换您的用户名

          GEM_HOME='/Users/username/.rvm/gems/ruby-1.9.2-p180@global' GEM_PATH='/Users/username/.rvm/gems/ruby-1.9.2-p180@global' gem卸载耙子

          GEM_HOME='/Users/username/.rvm/gems/ruby-1.9.2-p180' GEM_PATH='/Users/username/.rvm/gems/ruby-1.9.2-p180' gem 卸载耙子

          然后安装正确的 gem:

          rvm gem install mysql2 -v 0.2.7

          rvm gem install rake -v 0.8.7

          更新 MySQL gem(此处显示 x86_64 英特尔安装的声明):

          env ARCHFLAGS="-arch x86_64" gem install mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

          当您创建新应用时:

          rails new -d mysql

          您不需要更改 gemfile 或使用 bundle exec

          我希望这是有道理的。这篇文章不会让我在可读的地方布局语法。

          【讨论】:

          • 你写的和@Tyler基本一样。不同的是,他是一行行的,而你添加了不相关的信息。重点是什么?请注意read the FAQ
          猜你喜欢
          • 2011-07-14
          • 2011-08-31
          • 1970-01-01
          • 2011-09-07
          • 1970-01-01
          • 2015-02-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多