7

我正在研究 Michael Hartl 的 Rails 教程,到目前为止它非常出色。我在高级设置章节中,他在那里以有利于 TDD 的方式配置 Rails 环境。我安装了 Guard,它通过运行我在我的 spec/ 文件夹中的测试一直正常运行。但是,它吐出这个错误:

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 时遇到问题。它在说“Guard is now watch...”后退出

由于明显的原因,我没有复制堆栈跟踪的其余部分。我使用最新的 Rails Installer 安装了 Rails。这里发生了什么?我需要担心这个吗?它似乎至少部分工作......

4

3 回答 3

14

所以这就是发生的事情。默认情况下,在 Windows 上,Listen 应该使用轮询来检查文件系统更改。出于某种原因,它试图使用 WDM。所以,我必须把这个放到我的 Gemfile 中:

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

也许Guard让Listen尝试使用WDM?

于 2013-04-26T20:58:42.163 回答
1

找不到我从哪里得到这个建议,但我得到了以下在 windows 和 linux 上运行警卫的信息:

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

错误是这样,因此仅在该平台上运行时才尝试加载 gem。您的 windows 环境可能需要mswin代替mingw,具体取决于您使用的 ruby​​ 安装。

于 2013-08-23T20:49:02.693 回答
0

就像说的 Binary Phile 如果你在 windows 和类 unix 中都使用 rails,你应该在你的 Gemfile 中使用它:

gem 'wdm','>= 0.1.0', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

它工作正常并且可读。

于 2018-04-04T19:15:03.077 回答