ruby-on-rails - 如何强制 Rack 解决通常的 "You have already activated rack..."错误?

标签 ruby-on-rails rack

这是一个常见问题,但似乎没有一个答案能解决问题。我得到了通常的:You have already activated rack 1.4.1, but your Gemfile requires rack 1.3.6. Using bundle exec may solve this.
清除 Gemlock 文件什么也没做并运行 bundle install再次什么也没做...运行 bundle install --binstubs没有解决问题,因为“从您的应用程序根目录运行 ./bin/{rake|rails|etc}”只会导致更多错误。有没有办法解决这个明显常见的问题?

最佳答案

问题是这样的:

  • 您(至少)安装了两个版本的 Rack。
  • 您的 Gemfile 需要一个版本 (1.3.6)。您当前的环境提供了另一个版本 (1.4.1)。
  • 到您的应用程序执行时,当前环境已经加载了 1.4.1。
  • Bundler 知道您需要加载 1.3.6,但它无法加载它。您不能加载同一个 gem 的多个版本,因此 1.4.1 版本获胜,因为它是第一个加载的。
  • Bundler 向你提示。

  • 卸载有问题的 gem(例如 gem uninstall rack -v 1.3.6 )。更好的是,使用 RVM 和 gemsets 更好地隔离您的 gem,您将不会遇到此问题。

    关于ruby-on-rails - 如何强制 Rack 解决通常的 "You have already activated rack..."错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241912/

    相关文章:

    ruby-on-rails - Rails Engine 仅将中间件添加到主机应用程序

    ruby-on-rails - 适用于 Windows 上 Rails3 的工作 IDE

    mysql - 当启动我的 Rails 服务器时,我可能会在 mysql 中遇到一些错误

    ruby-on-rails - 如何查询 WHERE (ColA, ColB, ColC) IN ((a1, b1, c1), (a2, b2, c2), ...)

    ruby-on-rails - ruby If .. Else .. End/Increment : Syntax Error

    ruby - 如何使用 Sinatra 配置 RSpec 以在我的测试套件运行之前动态确定哪个 Sinatra 应用程序正在运行?

    ruby-on-rails-4 - Rails 4.2 服务器;私有(private)和公共(public)IP不工作

    ruby-on-rails - rvm rack ruby​​ 错误已经初始化常量 WFKV_

    ruby-on-rails - 如何在初始化程序中判断 Rails 正在哪个端口上运行

    javascript - 如何同步Web SQL数据库