ruby-on-rails - 如果我将 ruby 版本 2.5.1 与 rails 版本 2.3.18 一起使用会发生什么?
问题描述
如果我将 ruby 版本2.5.1
与 rails 版本一起使用会2.3.18
怎样?
我在 rails2.3.18
和 ruby 上构建了 rails 应用程序1.9.2p320
,我只想升级ruby 版本而不是 rails 有可能吗?
我必须面对哪些挑战?
解决方案
GitHub 维护一个公共分支,其中包含旧 Rails 版本的分支,并随着时间的推移进行了各种更改。有一段时间,他们在较新的 Ruby 版本上运行旧的 Rails 版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们已经有几年没有使用 2.3 了,所以充其量只会减少工作量。
一般来说,Ruby 版本几乎没有做出不兼容的更改,但是由于具有 Rails 的大小和种类的代码库,这些少数更改中的大多数确实在某个地方发生了变化。这对我来说似乎是个坏主意:例如,较新的 Ruby 版本中的任何安全修复都将大大超过此类旧 Rails 版本中的已知漏洞。
如果您这样做是因为您的应用程序使用系统 Ruby 并且您正在升级/更换操作系统,我建议您使用 rbenv / chruby / ruby-build / ruby-install 来安装此应用程序的旧版本。
不言而喻,非常不鼓励运行这样一个旧的 Rails 版本,并且将其暴露在 Internet 上是非常危险的——但我还是要说出来。
Rails LTS显然为 Rails 2.3 提供了一项向后移植安全修复的服务,这可能会使其更安全一些。他们目前似乎也支持使用 Ruby 2.3 运行 Rails 2.3;虽然这不是 2.5,但它可能会让你更接近,或者足够好。
推荐阅读
- javascript - 如何在字符串中替换但排除某些单词
- qt - Qt Woocommerce API 返回先前的订单数据
- arrays - 当 $array 仅包含一个 $null 元素时,为什么 $array -eq $null 不计算为 $true?
- sql - 为什么子查询不会产生重复的结果?
- angular - 具有条件显示/隐藏的动态角度形式组数组
- python - 对 IndexError 感到困惑:列表索引超出范围
- python - 如何使用 jupyter notebook 在 pandas 数据框中列出列表
- html - 如何在浏览窗口中获取选定的文件路径?
- sql - 根据另一个表过滤具有无效字段值的数据
- sql - SQL Server 如何判断输入日期的格式?