【问题标题】:What version of capybara is compatible with Rails 2.3 and Ruby 1.8.7?哪个版本的水豚与 Rails 2.3 和 Ruby 1.8.7 兼容?
【发布时间】:2026-01-25 01:30:01
【问题描述】:

我正在尝试在使用 Ruby 1.8.7 和 Rails 2.3 的设置上安装 capybara,但我收到了以下消息:

capybara requires Ruby version >= 1.9.3.

我有两个问题。

更相关的问题:

  • 与该设置兼容的最新水豚版本是什么?

更重要的问题:

  • 如何自行检查?

【问题讨论】:

  • 这些 Rails 版本标签是否正确?
  • 你是对的,我标记了错误的版本。右边是2.3

标签: ruby-on-rails ruby capybara ruby-on-rails-2 ruby-1.8


【解决方案1】:

关于 Capybara 的 Ruby 版本依赖,我去capybara source code 看了它的History。搜索“Ruby”很快让我发现 Capybara 在 2.0.0 版中放弃了对 Ruby 1.8 的支持。所以之前的版本 1.1.4 是与 Ruby 1.8 兼容的最新版本。

不幸的是,该文件没有提到 Rails 版本。我的 Rails 2 项目使用 webrat,所以我没有任何个人数据点。然而,谷歌搜索'"rails 2" capybara version' 会出现使用 Capybara 1.1 和 Rails 2 的示例(例如 in the Cucumber documentation),因此与您的 Ruby 兼容的最新 Capybara 版本也与您的 Rails 兼容。

【讨论】:

  • 我不知道 webrat,它允许我编写集成测试?我想为运行 rails 2.3 的应用程序编写集成测试,但想使用 rspec,而不是 test::unit
  • webrat 是一个较旧的工具。水豚取代了它。 rspec 或 Cucumber 和 capybara 是当今编写验收/集成测试的常用方法,根据上述内容,您甚至可以在 Rails 2 中使用它们。
  • Capybara 需要 ruby​​zip,它需要 ruby​​ 1.9。当我尝试安装 capybara 1.1.3 时,它会引发此错误:ERROR: Error installing rubyzip: rubyzip requires Ruby version >= 1.9.2.
  • 查看 Capybara 1.1.x 是否与旧的 ruby​​zip 兼容。将gem rubyzip 0.9.9 放入您的 Gemfile。
  • @DaveSchweisguth 是的,你是对的,gem rubyzip 0.9.9 甚至可以安装 Capybara 1.1.4。谢谢!
【解决方案2】:

在您的 gemfile 中,指定一个版本以便您可以安装它。查看我在工作中使用的 REE 应用程序,我们使用的是 1.1.4:

gem 'capybara', '~> 1.1.4'

~>1.1.x 将确保它始终保持在1.1.x 补丁级别。同样,如果您使用~> 1.2,它将始终保持在1.x 补丁级别。

【讨论】: