将 Rails 4 降级到 3.2
Posted
技术标签:
【中文标题】将 Rails 4 降级到 3.2【英文标题】:downgrading rails 4 to 3.2 【发布时间】:2013-04-22 16:30:32 【问题描述】:我安装了 Rails 4.0.0.beta1,但我需要降级到 Rails 3.2.13。
我使用过gem install rails 3.2
,但 Rails 继续使用 4.0.0.beta1。
我搜索了现有的疑问并尝试遵循答案,但没有一个对我有用。
认为这是一个简单的疑问,我需要解决。
这回答了我的问题:How to set default rails version for a project?
【问题讨论】:
尝试更改 Gemfile 中的 gem,然后运行 bundle install
。
你看这里了吗:***.com/questions/16122781/…?问题可能重复。
你可以在你的 gemfile 中添加 Rails 的那一行吗?
【参考方案1】:
在您的控制台中尝试以下操作。它会将rails更新或安装到指定的版本。
gem update rails 3.2.13
【讨论】:
【参考方案2】:除非您使用 bundle exec
,否则 Rubygems 将始终使用最新安装的 gem 版本。你需要卸载你不想要的版本。
gem uninstall rails --version 4.0.0.beta1
【讨论】:
这可行,但是当我运行rails -v
Rails 4.0.0.beta1 时坚持出现。我尝试包括卸载所有版本,在运行gem install rails -v=3.2.13
后也显示成功消息,但表示已安装 Rails 4.0.0.beta1
这很奇怪,因为在此过程之后,当我尝试卸载 rails 时,它只显示版本 3.2.13...
使用捆绑器可能是通向理智的途径。 :)【参考方案3】:
gem uninstall rails --version xxx
的答案应该可以很好地移除 rails gem。
但是,如果您希望或需要同时使用多个版本的 rails,您可以使用 bundler 加载正确版本的 gems(如预期的那样)。
$ bundle exec rails
在项目目录中列出 Gemfile 中的 rails 版本应该可以让您加载所需的 gem 而不会发生冲突。
此外,rvm 及其 gemset 功能还可以让您实现相同的目标,而无需使用 bundle exec
包装所有内容
【讨论】:
【参考方案4】:Rails 将使用Gemfile
中指定的版本:
gem "rails", "4.0.0.beta1"
将其替换为您要使用的版本:
gem "rails", "~> 3.2.0"
当然,您还需要更改代码和配置以使用旧的 Rails API。
【讨论】:
【参考方案5】:您遇到的问题与列出的here 相同。
这对我有用,也应该对你有用。这是一个更通用的解决方案,无论您的 Rails beta 版本如何,它都可以正常工作。请注意,为了切换回 3.2.13(或您想返回的任何版本),您必须删除 Railties 以及 Rails。
只要做:
gem uninstall rails
然后,选择您拥有的 Rails 4 版本并将其删除。
然后,做:
gem uninstall railties
然后做同样的事情。
当我卸载 Rails 的 Rails 4 版本时,它告诉我不会满足几个 gem(coffee-rails 和 sass-rails)的依赖关系。所以我只是对他们两个做了同样的事情,就像我上面做的那样,并删除了他们的 Rails 4 版本(例如,对于 sass-rails,我安装了一个名为 sass-rails-4.0.0.rc1 的版本)。
完成了!终端应将 3.2.13 列为您当前的 Rails 版本。
【讨论】:
【参考方案6】:我在使用 Rails 4.0.0 最终版本时遇到了同样的问题。要检查当前安装的内容,您可以运行以下命令:
>pik gem list
然后我检查了 rails 版本。它显示了带有 railties 4.0.0、4.0.0.rc2 和 3.2.14 的 rails 3.2.14(我想要的)。
然后我跑了
>gem uninstall railties
并卸载了除 3.2.14 之外的所有其他版本,现在它运行良好。问题是当调用 Rails 3.2 安装时,安装的是最新(或所有)版本的 railties。
如果您有其他版本的 rails 不是您想要的,您可以删除它们
>gem uninstall rails
并删除您不想拥有的 Rails 版本。
【讨论】:
以上是关于将 Rails 4 降级到 3.2的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Ruby 1.9.2 降级到 Ruby 1.8.7 以运行 Rails 2.0.2
检测到包降级:Microsoft.NETCore.Platforms从1.1.1降级到1.1.0。直接从项目引用报以选择不同版本 System.IO.Compression.ZipFile 4.3.0