1

我有一个使用 Ruby 1.9.3 和 Rails 3.2.6 编写的应用程序。在我部署在 Bluehost 上之后,这里别无选择,服务器上有 Ruby 1.8.7。

我的 gem 出现了不同的时间格式错误。我可以在服务器上编辑它们,但下次我进行上限部署时,我将擦除更改并必须再次执行。BH 让我从命令行将 Rails 升级到 3.2.6,但我无法升级到 Ruby 1.9。

  1. 我可以升级服务器还是必须用 Ruby 1.8 重写我的应用程序?
  2. 如果我重写,当他们将所有服务器升级到 1.9 时,我是否必须再次重写?

我打电话给 BH 并进行了实时聊天,他们总是将我发送到新应用程序的设置页面。

4

2 回答 2

1

首先,如果应用程序在 1.8.7 上运行,它(很可能)也会在 1.9.x 上运行。

反过来就有点难了……Rails 3.2.x 是最后一个支持 Ruby 1.8.7 的 RoR 版本。但除非您--old-style-hash在创建时使用,否则您将有很多工作要做。

根据您的代码的复杂程度,修复所有哈希可能就足够了:

# Ruby 1.9:
hsh = { foo: "bar" }

# Ruby 1.8 and 1.9:
hsh = { :foo => "bar" }
于 2012-09-28T13:58:53.347 回答
0

您必须将您的应用程序重写为 Ruby 1.8。大多数共享网络主机还没有使用 Ruby 1.9,或者我至少没有找到一个。因此,您必须根据要部署到的服务器的规范进行开发。大多数共享网络主机不知道如何处理 Ruby;PHP 和 Perl 等在服务器环境中已经存在了很长时间并且被很好地理解——但 Ruby 仍然有些新。

或者,您可以找到更好的/VPS 主机。我将 prgmr.com 视为学习管理 VPS 环境的一种预算方式(我不隶属于他们),但我在 Linode 上有一个 VPS,我不需要他们的服务。

于 2012-09-28T13:57:11.770 回答