Рейк 0.8.7, рейк отменен!неинициализированная константа Rake :: DSL - PullRequest
0 голосов
/ 20 марта 2012

Я использую 'rake 0.8.7' в своем проекте Rails, но когда я все еще пытаюсь либо rake routes, либо bundle exec rake routes, я все равно получаю

rake aborted!
uninitialized constant Rake::DSL

Если я попытаюсь вставить рекомендованный require 'rake/dsl_definition' в мой Rakefile, это даст мне

rake aborted!
no such file to load -- rake/dsl_definition

Итак, я застрял в том, как это исправить. Я не могу запустить какие-либо команды rake ...

1 Ответ

0 голосов
/ 20 марта 2012

Эта ошибка звучит так, как будто вы используете что-то в своем приложении, для которого требуется более поздняя версия рейка, чем 0.8.7.Believe Rake :: DSL появился только в рейке 0.9.0.

Самая последняя версия Rails объявляет себя работающим с граблями до 0.8.7.Возможно, это неправильно.Скорее всего, вы используете в своем проекте другие гемы, для которых требуется более поздний рейк.

Почему и как вы используете рейк 0.8.7 в своем проекте вместо более нового??Если вы не заблокировали рейк 0.8.7 в своем гемфайле (или не используете какой-либо другой гем, который настаивает на 0.8.7), вы сможете запустить bundle update rake для обновления до последней версии рейка.

Если у вас установлено несколько версий рейка, вам может потребоваться запустить bundle exec rake ..., как вы заметили.Но в вашем проекте bundle exec rake по-прежнему дает вам 0.8.7, потому что по какой-то причине для этой версии rake ваш Gemfile.lock установлен на данный момент - но ваш проект использует что-то, что требует более свежей версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...