【问题标题】:rails server works but "rails console" not workingrails 服务器工作,但“rails 控制台”不工作
【发布时间】:2016-02-05 00:40:14
【问题描述】:

我正在做一个 Rails 项目。使用命令“bundle exec rails s”我可以启动本地服务器,但是,“bundle exec rails c”会引发以下错误:

 /Users/wh026399/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError)
    from /Users/wh026399/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/wh026399/healthelife_web/vendor/bundle/gems/spring-1.6.2/lib/spring/commands.rb:33:in `<module:Spring>'
    from /Users/wh026399/healthelife_web/vendor/bundle/gems/spring-1.6.2/lib/spring/commands.rb:4:in `<top (required)>'
    from /Users/wh026399/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/wh026399/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/wh026399/healthelife_web/vendor/bundle/gems/spring-1.6.2/lib/spring/application.rb:77:in `preload'
    from /Users/wh026399/healthelife_web/vendor/bundle/gems/spring-1.6.2/lib/spring/application.rb:143:in `serve'
    from /Users/wh026399/healthelife_web/vendor/bundle/gems/spring-1.6.2/lib/spring/application.rb:131:in `block in run'
    from /Users/wh026399/healthelife_web/vendor/bundle/gems/spring-1.6.2/lib/spring/application.rb:125:in `loop'
    from /Users/wh026399/healthelife_web/vendor/bundle/gems/spring-1.6.2/lib/spring/application.rb:125:in `run'
    from /Users/wh026399/healthelife_web/vendor/bundle/gems/spring-1.6.2/lib/spring/application/boot.rb:18:in `<top (required)>'
    from /Users/wh026399/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/wh026399/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from -e:1:in `<main>'
  • Ruby 版本:2.2.2
  • Rails 版本:4.2.5
  • gem 版本:2.5.2
  • 捆绑器版本:1.11.2

[更新]:原来在 Gemfile 中注释掉“spring”可以解决这个问题。

【问题讨论】:

  • 另外,我没有安装 ruby​​ 2.2.0,为什么它会出现在路径中?
  • 忘了提,我有一个 .bundle/config 文件,它设置 BUNDLE_PATH: vendor/bundle 所以 gem 安装在我的项目目录中的 vendor/bundle 下,而不是系统范围内。

标签: ruby-on-rails


【解决方案1】:

好的,我在遇到与海报相同的问题后遇到了这个问题。他的更新建议从 Gemfile 中删除 spring 帮助我走上了正确的轨道。对我来说,问题是我引入了一个新的环境变量,但是 spring 没有接受它。当您从 Gemfile 中删除 spring 时,它会阻止您的应用程序使用 spring 进程,但它实际上并没有停止 spring 进程,因此将其添加回来、执行捆绑安装或其他任何操作仍然会让您保持相同的状态spring 进程正在运行。

要查看这是否可能是您的问题,您可以检查 bin/spring status 并查看 spring 是否在后台运行,以及它是否已经运行了一段时间。

解决方案(至少对我来说):重启spring

bin/spring stop
rails c

【讨论】:

    【解决方案2】:

    你试过gem update --system吗?您可能需要更新版本的 ruby​​gems。

    【讨论】:

    • 是的,我试过了,它会将 gem 的版本升级到 2.5.2,但仍然看到错误。
    • @user1783403 做[sudo] gem install bundler 然后bundle install
    • 只是想帮忙。 1)如何切换回您的系统红宝石。 rvm use system。 2)我看到你与spring有关的错误信息,所以也许你可以试试gem install spring
    • 我怀疑路径错误。在我的 gem 环境中,安装目录是 /Users/wh026399/.rvm/gems/ruby-2.2.2 但用户安装目录是 /Users/wh026399/.gem/ruby/2.2.0 ruby​​ 2.2.0 来自哪里?我只安装了 2.2.2 和 2.0.0
    • 在您的/etc/nginx/nginx.conf 中,是否指向安装了 bundler 的 ruby​​ 版本?
    【解决方案3】:

    如果你使用 rvm 设置默认的 ruby​​ 版本,使用下面的方法,所以它会选择正确的 ruby​​ 版本。您可能需要在设置默认值后运行 bundle install/gem install rails -v 4.2.5

    rvm --default 2.2.2
    

    【讨论】:

    • 2.2.2 是我当前的默认值,之后我确实重新运行了 bundle install ,但仍然没有运气:(
    猜你喜欢
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多