【发布时间】:2014-10-28 02:40:09
【问题描述】:
我正在开发一个 Rails 2.3.4 应用程序,我试图将其移植到 IIS 和 Helicon Zoo 上运行。我遇到的问题是:
c:\Zoo\Workers\ruby\lib\app.rb
在 ~32 行引发以下异常:
STDERR
[tid-21079944] Only Rails 2.3.x and Rails 3.x are currently supported. (RuntimeError)
C:/Zoo/Workers/ruby/lib/app.rb:33:in `build_app'
C:/Zoo/Workers/ruby/lib/app.rb:16:in `initialize'
C:/Zoo/Workers/ruby/lib/worker.rb:4:in `new'
C:/Zoo/Workers/ruby/lib/worker.rb:4:in `initialize'
C:/Zoo/Workers/ruby/zoorack.rb:30:in `new'
C:/Zoo/Workers/ruby/zoorack.rb:30
这让我很困惑,因为之前运行此应用程序的 rails 版本是 2.3.4。我正在进行的工作假设是 Rails 可以以某种方式以旧模式运行插件?这有意义吗?我认为 Helicon Zoo 不支持在 2.3.4 之前的旧模式下回滚。
我稍微修改了 app.rb 文件以获取 rails 版本。
调用:Rails.version.to_s 我得到:2.2.2
在代码库中搜索“2.2.2”我发现该项目依赖于 actionpack lib 版本 2.2.2。
此外,rails 插件版本通常遵循它们所依赖的“rails”版本吗? 是否可以运行依赖于旧“rails”版本的插件?
【问题讨论】:
-
问题可能是它需要 2.3 而不是 2.2 早期版本上出现的一些问题可能会支持此限制。
-
@TonyCool 我肯定在运行 rails 2.3.4。从 Helcion Zoo Web 控制台调用“rails -v”会产生“Rails 2.3.4”。
-
会不会是插件检查 Rails 版本不正确?如果您使用 Zoo,则系统中必须安装 Ruby,例如 C:\Ruby19 尝试使用系统控制台导航并检查是否在此全局安装中安装了 rails。尝试从这个全局安装中删除 Rails,如果它存在的话。由于来自 Web 控制台的“rails -v”命令产生了正确的版本,因此您的环境似乎配置正确。但插件可能会忽略 GEM_HOME 等环境设置,通过硬编码的 Ruby 安装路径检查 Rails 版本。
标签: ruby-on-rails ruby rubygems heliconzoo