2013-04-26 3 views
7

Я работаю над учебником Майкла Хартла Rails, который пока прекрасен. Я нахожусь в разделе расширенной настройки, где он проходит настройку среды Rails способом, способствующим TDD. Я установил Guard, и он работает должным образом полностью через выполнение тестов, которые у меня есть в моей спецификации/папке. Но затем он выплевывает эту ошибку:Охрана не загружается WDM

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/listen-1.0.2/lib/listen/adapter.rb:195:in `require': cannot load such file -- wdm (LoadError) 

У меня установлена ​​wdm. Я не знаю, почему он не может загрузить его.

Кажется, что у Listen возникают проблемы с загрузкой WDM. Он уходит после того, как он говорит: «Охранник сейчас смотрит ...»

Я не воспроизвел остальную трассировку стека по очевидным причинам. Я установил Rails с помощью последнего установщика Rails. Что тут происходит? Мне нужно беспокоиться об этом? Он работает как минимум частично ...

+3

'gem install wdm'? – Yule

+0

Я забыл добавить, что я действительно это сделал. Это то, что меня перепутало. Я должен добавить, что у меня есть две установки Ruby в моей системе. Тот, который пришел с RailsInstaller, и тот, который я использовал раньше. Я запускал «gem install wdm» как из моей обычной оболочки, так и из оболочки RailsInstaller, но я не могу заставить ее работать. –

+0

Я удалил как предыдущую установку Ruby, так и установку RailsInstaller и снова установил RailsInstaller. По-прежнему имеет ту же проблему. –

ответ

14

Так вот что произошло. По умолчанию, в Windows, Listen должен использовать опрос для проверки изменений файловой системы. По какой-то причине он пытался использовать WDM. Итак, я должен был иметь это в своем Gemfile:

require 'rbconfig' 
gem 'wdm', '>= 0.1.0' if RbConfig::CONFIG['target_os'] =~ /mswin|mingw/i 

Может быть, Guard делает Прослушать попытку использовать WDM?

+0

Он делает и должен. https://github.com/guard/listen/issues/149 К сожалению, он не работает atm, но защитный опрос без wdm в значительной степени бесполезен, если функция пересылки файлов является частью рабочего процесса. – isimmons

1

Не может найти, где я получил эту рекомендацию, но я получил следующее беговой охраны через окно и Linux:

gem 'rb-inotify', github: 'nex3/rb-inotify', platforms: :ruby, require: false 
gem 'wdm', platforms: :mingw, require: false 

Ложного сделают так, что драгоценные камни только пытались быть загружены, когда работающих на этой платформе. Для вашей среды Windows может потребоваться mswin вместо mingw, в зависимости от используемой вами рубиновой установки.

Смежные вопросы