【问题标题】:Compatibility of Rails 4 engine with Rails 3 or higher versionRails 4 引擎与 Rails 3 或更高版本的兼容性
【发布时间】:2015-06-23 06:23:28
【问题描述】:

我需要开发一个 Rails 应用程序。我对开发 4.2 或 3.2 应该使用哪个版本感到困惑。 如果我在 Rails 4.2 上开发,它将与 Rails 3 或更高版本兼容,因为我们正在将应用程序作为产品开发。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 rails-engines


    【解决方案1】:

    我不太明白你的问题。你是从零开始开发的吗?那么您应该使用最后一个稳定版本(4.2),因为您将获得更长的支持时间。您编写和测试的任何内容都可以使用。

    当您已经有一些代码并想要更新 Rails 版本同时保留旧代码时会出现版本问题,例如:您有一个旧的 Rails 3 应用程序并且出于某种原因想要将其迁移到导轨 4。

    即便如此,如果您的服务器中有不同的现有 Rails 应用程序,您可以使用 RVM 让它们同时运行。

    这里似乎缺少一些概念:您遇到的主要问题是您的 Gemfile,并且可能是 Rails 4 中引入的一些新语法。您只是不应该在具有不同版本的 Rails 应用程序之间移动代码,那就是全部。

    【讨论】:

    • 实际上,我们正在从头开始开发新产品,就像 spree 或 devise 这样的引擎。我在 Rails 4.2 上开发了虚拟引擎,并尝试在 3.2 上使用,但出现了 gem 依赖问题。在 Gemfile 中:coffee-rails (~> 4.1.0) ruby​​ 依赖于 railties (= 4.0.0) ruby​​ rails (= 3.2.16) ruby​​ 依赖于 railties (3.2.16)
    • 但是你为什么要在其他地方使用它呢?这是您的 Gemfile 中的一个问题。您的 Gemfile 通常包含您将在应用程序中使用的 Rails 版本,并且它是固定的。因此,如果您将代码从 4.2 应用程序移动到 Rails 3 应用程序,肯定会出现问题。您可以坚持使用 Rails 4 应用程序或在 Rails 3.2 应用程序中进行开发,但如果您想避免版本问题,请不要将代码从一个应用程序移到另一个应用程序。
    • 例如,如果我们的客户已经在 3.2 中开发了应用程序并且他想使用我们的引擎,那么它不兼容。我们要开发支持 3.2 及更高版本的引擎。
    • 在这种情况下,您需要做的是在 Rails 3.2 中开发应用程序,或者将您的客户端应用程序升级到 Rails 4。您可以尝试使用非破坏性语法,但最终您会遇到错误,因为这不是 Rails 版本的重点。
    猜你喜欢
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多