在内部Rails应用程序的工作中,服务器运行Rails 2.0.4和Ruby 1.86。据我所知,这不会很快改变,我无法控制它。我打算尝试在几台计算机之间进行测试,如果有人知道会发生什么,我很好奇。
作为服务器是2.0.4,如果可能的话,我想为该服务器构建Rails 2.3.5应用程序。据我所知,到目前为止,如果我冻结宝石和反应依赖,这将不会成为问题。听起来不错吗?
此外,内部工作服务器没有超出Rails安装的宝石。我想知道的是,如果我能在2.0.4服务器上成功运行2.3.5应用程序,我是否也可以使用额外的宝石并解压缩使用它们,即使服务器没有它们?我知道版本2.1引入了Gem Dependencies,因此在2.0.4服务器上运行的2.3.5 Rails应用程序是否能够使用已解压缩到应用程序中的所需gem?
这种情况最糟糕的事情之一是,即使上述内容有效,服务器在1.86上也会使我不能使用许多需要Ruby 1.87的非常酷的宝石(如Formtastic)。
由于
答案 0 :(得分:0)
您可以使用RAILS_GEM_VERSION变量在conf / environment.rb文件中手动指定应用程序中使用的Rails版本。
您将无法使用未安装在服务器上的宝石,因为该应用程序将无法找到这些库。
答案 1 :(得分:0)
我继续前进并做腿部测试。如果这有助于其他任何人:
Rails 2.3.5将在2.0.x服务器上正常运行。 使用Rails 2.1或更高版本,您可以解压缩宝石,您的应用程序将在2.0.x服务器(较低版本的服务器)上运行。这些是我按顺序采取的步骤。这里唯一独有的是Rack版本特定于Rails 2.3.5(及以下版本)。在2.3.6及更高版本中,他们切换到机架1.1。我坚持2.3.5因为2.3.6及更高版本的Rack问题,比如断开的分段上传。)
我使用authlogic gem测试了这一点 - 将项目移动到只安装了Rails 2.0.4的备用笔记本电脑,没有其他宝石(MySQL和Mongrel除外)。我唯一不确定的是,如果宝石文件(如Simple Forms)可以运行,需要运行脚本文件的宝石才能安装。当我有时间的时候,我会去测试它。