Rake 0.9.0 'undefined метод' task ''

Gemfile содержит только рельсы 3.0.7 и sqlite3, внезапный рейк не будет запускаться ни на какие приложения. Ошибка началась при запуске '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/[email protected]/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load'
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load_rakefile'
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:495:in `raw_load_rakefile'
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:78:in `block in load_rakefile'
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:77:in `load_rakefile'
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:61:in `block in run'
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:59:in `run'
/Users/codywright/.rvm/gems/[email protected]/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>'

Ответ 1

Я сделал: sudo gem uninstall rake -v 0.9, затем добавил gem 'rake', '0.8.7' в свой файл gem.

Ответ 2

Вместо того, чтобы понизить рейтинг вашего рейка, вы можете исправить файл application.rb, добавив строку:

include Rake::DSL

Просто добавьте, что внутри класса Application, и вы должны быть хорошими!

Пример application.rb:

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

Ответ 3

gem 'rake', '0.8.7' в Gemfile работает, если также может понадобиться запустить bundle update rake, если связующий агент жалуется на блокировку рейка "0.9.0".

Вот проблема на странице 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

edit Gemfile: добавьте это после gem 'rails':

gem 'rake', '0.8.7'

окончательно выполните:

jruby -S bundle update rake

Ответ 5

Запустите эти две строки в командной строке. Он удалит рейк 0.9.0. замените свое имя пользователя, где он показывает "имя пользователя"

GEM_HOME = '/Users/username/.rvm/gems/[email protected]' GEM_PATH='/Users/username/.rvm/gems/[email protected] 'gem удалить рейк

GEM_HOME = '/Пользователи/имя пользователя /.rvm/gems/ruby-1.9.2-p180' GEM_PATH = '/Пользователи/имя пользователя /.rvm/gems/ruby-1.9.2-p180' gem uninstall rake

Затем установите правильные драгоценные камни:

rvm gem install mysql2 -v 0.2.7

rvm gem install rake -v 0.8.7

Обновите глагол MySQL (здесь показан пример для установки x86_64 intel install):

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

При создании нового приложения:

rails new -d mysql

вам не нужно менять gemfile или использовать execle exec

Надеюсь, это имеет смысл. Этот пост не позволит мне компоновать синтаксис, где он читаем.