ошибки рейка при загрузке мьютекса - PullRequest
0 голосов
/ 15 марта 2011

Я только что установил Facebook Connect для своего сайта, но не отредактировав что-то в файлах, которые приводят к ошибке, я получаю это:

rake aborted!
uninitialized constant ActiveSupport::Dependencies::Mutex
/var/www/###/Rakefile:10:in `require'
(See full trace by running task with --trace)

В строке 10 моего рейкфайла вы найдете:

require 'tasks/rails'

Я не редактировал 'tasks / rails' ... что это за Mutex и почему он теперь вызывает эту ошибку?

Ответы [ 3 ]

1 голос
/ 24 марта 2011

Если вы не можете выполнить обновление с rails 2.3.4, перед инициализацией boot.rb требуется 'thread' в Rakefile.

Вам также может потребоваться это в config / environment.rb, искрипт / сервер.

выглядит так:

require 'thread'
require File.join(File.dirname(__FILE__), 'boot')
1 голос
/ 15 марта 2011

ошибка, вероятно, выдается, потому что некоторый код, который находится в модуле ActiveSupport :: Dependencies, хочет использовать класс Mutex, но класс по какой-то причине не может быть загружен автоматически.

Иногда проблема заключается не в коде, а в окружающей среде - например, в конфликтующих драгоценных камнях, я полагаю, проблема в том, что ваш недавно установленный фейсбук портит некоторые части вашей системы

Это может помочь посмотреть на некоторые грабли: task --trace output, чтобы определить, какой файл вызывает проблему - возможно, искать вызовы в библиотеку facebook connect, а затем попытаться воспроизвести этот файл - закомментировать строки, которые могут быть причиной вашей проблемы, чтобы определить, что должно быть сделано.

Чтобы помочь вам в дальнейшем, вам понадобится трассировка стека, список ваших драгоценных камней и их версии, использованные в проекте, и, возможно, шаги, которые вы сделали при установке Facebook Connect

0 голосов
/ 15 марта 2011

У вас установлен Rails 3.0.5, но вы пытаетесь использовать 2.3.4. Хотя, если у вас установлен дополнительно 2.3.4, они не должны сильно конфликтовать, я рекомендую вам взглянуть на использование RVM для разработки для создания изолированных сред разработки (называемых гемсетами). *

Кроме того, вы используете Rails 2.3.4, который несовместим с Rubygems 1.6. Я настоятельно рекомендую вам обновить rails до последней версии 2.3 (в настоящее время 2.3.11), так как она включает в себя многочисленные исправления ошибок и безопасности, а также совместимость с последними Rubygems. В качестве альтернативы вы можете понизить Rubygems до 1.3.7, но я бы посоветовал обновить Rails, поскольку это лучшее долгосрочное решение и включает в себя множество критических исправлений безопасности.

...