【问题标题】:Ruby on Rails Error - already activated xxxxx, but your Gemfile requires yyyyyRuby on Rails 错误 - 已激活 xxxxx,但您的 Gemfile 需要 yyyyy
【发布时间】:2011-07-07 04:21:28
【问题描述】:

我刚刚开始使用 RoR,遇到了诸如“已经激活 xxxxx,但您的 Gemfile 需要 yyyyy”等错误。我尝试搜索信息以更好地了解 RoR gem、插件加载过程,但无法没有找到。有人可以指出可以帮助理解 RoR 机制的好的资源/书籍。

p.s.:我是一个 10 多年的 .Net 人,正在转向 RoR,有兴趣学习 RoR 机制,而不仅仅是操作方法。

【问题讨论】:

  • 你在运行什么命令?
  • 您没有在 Gemfile 中为您的 Gem 指定版本,因此运行 bundle installbundle update 将 gem(在 Gemfile.lock 文件中)锁定到当前版本的 gem在您的系统上。从那时起,您将系统上的 gem 更新为较新的版本,因此当 Rails 启动时,它会加载与 Gemfile.lock 中指定的版本不匹配的较新版本。这没什么大不了的,只需再次运行 bundle update 以便 Gemfile.lock 反映更新的 gem。
  • 另外,祝您从 .NET 迁移成功。我也来自 Rails 的主要 .NET 背景。这需要一些调整,但这是值得的。很高兴您在这两个平台上都有经验,可以从中受益。
  • 抱歉回复晚了。你的解释很有帮助。我开始了我的第一个 RoR 爱好项目(日常工作在 .Net 上),我正在尝试做 XML-Rpc,我尝试了各种 gem,所以可能我搞砸了 Gemfile.lock。 bundle exec 解决了这个问题。

标签: ruby-on-rails ruby


【解决方案1】:

尝试运行 bundle installbundle update... 听起来您的 Gemfile 的信息与实际环境的信息有冲突。

如果没有帮助,请使用bundle exec <actual command here>

【讨论】:

  • 事实上,在使用 bundler 的项目中工作时,最好养成在任何 ruby​​ 命令或任何会导致 ruby​​ 代码被跑。这将阻止(例如)rake 在调用明确尝试使用捆绑 gem 的 ruby​​ 代码之前加载较新版本的 gem。
  • 除非你使用rvm >= 1.6.18,它与捆绑器相关联并消除了这种需求;)
  • 非常抱歉回复晚了(我被我的 .Net 日常工作淹没了)。尝试运行 rake db:migrate 命令时出现此错误。我曾尝试捆绑安装/更新,但没有帮助。我尝试通过 bundle exec 执行 rake 并且它有效。顺便说一句,我使用的是 rvm 1.6.20。感谢您的投入。
猜你喜欢
  • 1970-01-01
  • 2014-06-10
  • 2011-08-30
  • 1970-01-01
  • 2017-08-29
  • 2011-09-07
  • 2015-11-21
  • 2011-05-27
  • 1970-01-01
相关资源
最近更新 更多