Ruby on rails 为什么在从3.1.1升级rails gem时充当标记

Ruby on rails 为什么在从3.1.1升级rails gem时充当标记,ruby-on-rails,rubygems,gem,acts-as-taggable-on,Ruby On Rails,Rubygems,Gem,Acts As Taggable On,我有一个rails应用程序,它使用rails gem v3.1.1,并在gem v2.1.1上充当标记 我们的服务器构建安装rails v3.1.1 gem,然后在v2.1.1 gem上作为标记 我的问题是,在gem上安装acts as taggable也会安装最新的rails(3.2.1),尽管我已经安装了rails,并且最终安装了两个版本的rails 看看这个例子,它将rails作为一个依赖项。在安装时,我希望充当标记的角色知道已安装rails gem,而不是安装最新版本 你能解释一下为什么

我有一个rails应用程序,它使用rails gem v3.1.1,并在gem v2.1.1上充当标记

我们的服务器构建安装rails v3.1.1 gem,然后在v2.1.1 gem上作为标记

我的问题是,在gem上安装acts as taggable也会安装最新的rails(3.2.1),尽管我已经安装了rails,并且最终安装了两个版本的rails

看看这个例子,它将rails作为一个依赖项。在安装时,我希望充当标记的角色知道已安装rails gem,而不是安装最新版本

你能解释一下为什么它会再次安装rails,以及是否有办法阻止它吗


提前感谢。

gem的2.2.2版将Rails依赖项降低到3.x而不是3.2。如果您能够升级acts as taggable on,请切换到v2.2.2,这样您就不会再有依赖项冲突。

如何安装gems?您好,Frederick,我使用gem install(而不是bundler)并在创建包含所有应用程序依赖项而非应用程序代码的Amazon EC2机器映像时指定版本(我认为这是最佳实践)。使用bundler需要将我们的应用程序作为服务器构建的一部分进行部署-我认为两者应该是独立的。这正是bundler设计用来解决的问题。在构建映像时,您仍然可以通过将Gemfile&Gemfile.lock复制到服务器来使用bundler。就我个人而言,在构建EC2映像时,我不会将gems放入服务器中在这里,他们似乎经常改变,使它成为一个Hasselthanks Frederick,我将尝试只使用Gemfile和Gemfile.lock-想想看,在一个地方管理版本比管理Gemfile和服务器构建脚本更有意义。我只希望gem上的acts_as_taggable_在我使用时不会安装最新的rails gem实际上,回顾这一点,gem依赖项从未超过3.1。正如Frederick Cheung所建议的,问题可能是您使用了错误的方法来管理gem。您是否使用bundler进行安装?在使用Rails时,您应该将依赖项放在Gemfile中并运行
 bundle install
自动安装gem。不要使用
gem install
安装gem。谢谢,我还没有考虑升级到2.2.2。我希望但也怀疑会发生同样的情况-正如您所说,依赖性从未高于3.1。