【问题标题】:Downgrading from Rails 3.2.6 to 3.0.11从 Rails 3.2.6 降级到 3.0.11
【发布时间】:2012-08-30 15:12:59
【问题描述】:

我在尝试使用 rails 3.0.11 时遇到问题。我最初使用的是 rails 3.2.6。在 Rails 3.2.6、Ruby 1.9.2 和 gem 1.8.7 中构建原型应用程序。但是后来发现,我们需要托管的服务器是共享服务器,只能支持Rails 3.0.11、Ruby 1.8.7和gem 1.7.2。

因此,我希望在遇到更多问题之前保持我的开发环境完全相同。我发现两个版本的 routes.rb 存在一些差异。

我遵循的步骤:

  1. 未安装的导轨
  2. 已卸载 ruby​​
  3. here 安装 ruby​​。
  4. 这安装了 ruby​​ 版本 1.8.7-p370 和 gem 1.8.7
  5. 之后,我通过将版本指定为 3.0.11 来安装 rails

但是当我运行命令 rails -v 时,它仍然会向我抛出一个错误,提示“缺少 gem rails 3.2.6.运行 bundle install 来解决问题'

当我运行 bundle install 时,它再次完全安装了 rails 3.2.6 并且问题仍未解决。

请建议我如何在 Rails 3.0.11 上开始我的开发而不遇到任何问题?我是否需要删除系统中用于检测 rails 3.2.6 并产生问题的某些注册表或映射?

这是紧迫的,因为我需要在 9 月 7 日之前完成我的开发。

由于我是 stackexchange 的新手,请指导在同一个相关线程上提问是否合适,或者我应该为我的问题打开新的讨论?

【问题讨论】:

  • 您是否将 Gemfile 更改为参考 rails 版本 '3.0.11'?
  • 除了检查您的 Gemfile,您还可以运行 gem list 以确保没有引用 rails 3.2.6。当您运行 rails 命令时,它将始终在安装的最新版本上运行。这就是bundle exec rails 可以派上用场的地方。
  • Gemfile 在我的项目中?我没有更改我的 gem 文件。在运行“gem list rails”时,它仅显示 rails 3.0.11。但是当我运行 rails -v 时,它会要求运行 bundle install 命令。 Gemfile 需要在项目中更改,但最初 rails 命令应该首先正常运行:|
  • 再次卡住:((..能够安装rails 3.0.11。但它在我安装的命令窗口中运行。当我打开新命令窗口或使用aptana studio插件从eclipse终端打开时,它给了我错误:←[31mCould not find i18n-0.6.0 in any sources←[0m ←[33mRun bundle install to install missing gems.←[0m...这意味着我需要有rails 3.2 .6...为什么会出现这种情况???如何解决??我没有安装rails 3.2.6?是因为gem版本吗??

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-1.8.7


【解决方案1】:

@Gun - 请注意,作为对上面发布的其中一个 cmets 的回应 - 您确实需要更改 Gemfile - 如果您从项目目录中运行 rails -v,它读取宝石文件。

有一个位于script/rails 的脚本 - 这是当您从项目目录运行 rails 命令时运行的脚本。请注意,此 rails 脚本需要您的 config/application.rb 文件 - 该文件依次读取 Gemfile 并捆绑引用的 gem。因此,您的 Gemfile 是否仍然引用 3.2.6,并且尚未安装,rails -v工作

很高兴听到问题已解决:)

至于资产管道 - 如果您使用的是 rails 3.2.6(或正在使用它),那么您可能一直在使用资产管道来服务您的资产(javascript 文件、CSS 文件、图片等)。 如果您是,并且您降级到 Rails 3.1 版之前的任何内容,那么通过资产管道提供的任何内容都将不再工作。

这里是对资产管道的一个很好的描述:http://guides.rubyonrails.org/asset_pipeline.html

【讨论】:

  • 谢谢克里斯塔。 Yaa 为之前的项目做了同样的事情:)
【解决方案2】:

当您更改您的 rails 依赖项时,您还应该检查删除您的 Gemfile.lock 或手动“捆绑更新 rails”。

【讨论】:

  • 能够安装 rails 3.0.11。但它在我安装的命令窗口中运行。当我打开新的命令窗口或使用 aptana studio 插件从 eclipse 终端打开时,它给了我错误:←[31mCould not find i18n-0.6.0 in any sources←[0m ←[33mRun bundle install to install missing gems。 ←[0m...这意味着我需要rails 3.2.6...为什么会这样???怎么解决??我没有安装 rails 3.2.6?是gem版本的原因吗??
【解决方案3】:

我建议使用rbenv 或 rvm 创建一个虚拟环境/沙箱,您可以在其中安装您喜欢的 ruby​​ 版本(例如 1.8.7)并单独跟踪您的依赖项。这将为您节省很多精力。

请记住,rails 3.0 没有资产管道支持(它已包含在 rails 3.1 中)!这是一个非常重要的区别,如果您依赖它,降级将面临大问题。

【讨论】:

    【解决方案4】:

    非常感谢大家的帮助。

    我认为这是一个奇怪的问题。我在系统上有heroku。我最初将我的应用程序部署在同一台服务器上,然后更改为另一台托管服务器。 卸载heroku后,它工作得很好。可能,那是在某个地方干扰。虽然不确定,但问题已解决。

    再次感谢您的大力帮助!!!

    同时,我会要求 alup 进一步说明资产管道支持。是吗?能多解释一下吗?

    【讨论】:

      【解决方案5】:

      需要从桌面删除 C:\Users\.ror 文件夹和 C:\Users\.gemfile 和 C:\Users\.gemfile.lock..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-22
        • 1970-01-01
        相关资源
        最近更新 更多