2013-04-26 26 views
7

Pracuję z tutorialem Railsów Michaela Hartla, który jest doskonały jak na razie. Jestem na Rozdziale Instalacji Zaawansowanej, gdzie przechodzi przez konfigurację środowiska Railsowego w sposób sprzyjający TDD. Zainstalowałem Guard i działa poprawnie przez cały czas wykonywania testów, które mam w moim folderze spec /. Ale wtedy wypluwa ten błąd:Osłona nie ładuje się 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) 

Mam zainstalowany wdm. Nie wiem, dlaczego nie można go załadować.

Wygląda na to, że program Listen ma problemy z ładowaniem WDM. Opuszcza się po napisie "Guard obserwuje teraz ..."

Nie powtórzyłem reszty śladu stosu z oczywistych powodów. Zainstalowałem Railsy przy użyciu najnowszego Railsowego Instalatora. Co tu się dzieje? Czy muszę się tym martwić? Wygląda na to, że działa przynajmniej częściowo ...

+3

'gem install wdm'? – Yule

+0

Zapomniałem dodać, że faktycznie to zrobiłem. To mnie denerwuje. Powinienem dodać, że mam dwa instalacje Ruby w moim systemie. Ten, który pojawił się z RailsInstaller i tym, którego używałem wcześniej. Uruchomiłem 'gem install wdm' zarówno z mojej zwykłej powłoki, jak i powłoki RailsInstaller, ale nie mogę tego uruchomić. –

+0

Odinstalowałem zarówno moją poprzednią instalację Ruby, jak i instalację RailsInstaller i ponownie zainstalowałem RailsInstaller. Nadal mam ten sam problem. –

Odpowiedz

14

Oto co się stało. Domyślnie w systemie Windows program Listen powinien korzystać z odpytywania w celu sprawdzenia zmian systemu plików. Z jakiegoś powodu próbował użyć WDM. Więc musiałem mieć to do mojej Gemfile:

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

Może Strażnik sprawia, że ​​Słuchaj, spróbuj użyć WDM?

+0

To robi i powinno. https://github.com/guard/listen/issues/149 Niestety nie działa bankomat, ale odpytywanie strażników bez wdm jest praktycznie bezużyteczne, jeśli livereload jest częścią przepływu pracy. – isimmons

1

nie mogę znaleźć gdzie mam to zalecenie, ale dano mi następujące wyścigowe straż całej Windows i Linux:

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

Fałszywa sprawiają, że tak kamienie są jedynie usiłował być ładowany podczas działa na tej platformie. Twoje środowisko Windows może wymagać mswin zamiast mingw, w zależności od tego, jakiego używasz Rubiego.

Powiązane problemy