Ruby-on-rails Rails 未初始化的常量 Bundler (NameError)

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/23130295/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-02 23:33:18  来源:igfitidea点击:

Rails uninitialized constant Bundler (NameError)

ruby-on-railsbundler

提问by user2936314

I'm getting the following error when running any rails commands like rails sor rails c, it's also preventing my heroku app from starting (same error):

运行任何 rails 命令(如rails sor )时出现以下错误rails c,这也阻止了我的 heroku 应用程序启动(相同错误):

app/config/application.rb:7:in `<top (required)>': uninitialized constant Bundler (NameError)
from /Users/you/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `require'

Line 7 in the error message is:

错误消息中的第 7 行是:

Bundler.require(:default, Rails.env)

Doing the commands as bundle exec rails ssucceeds, but that doesn't help the heroku app. I've verified which ruby, which railsand which bundler. I've also tried starting a new rvm gemset and reinstalling the bundle. The heroku error is identical:

执行命令bundle exec rails s成功,但这对 heroku 应用程序没有帮助。我已经验证which rubywhich rails并且which bundler。我也试过启动一个新的 rvm gemset 并重新安装包。heroku 错误是相同的:

 /app/config/application.rb:7:in `<top (required)>': uninitialized constant Bundler (NameError)

running bundle checkreturns no issues.

运行bundle check返回没有问题。

Some similar questions suggested this:

一些类似的问题表明了这一点:

 bundle config --delete bin    # Turn off Bundler's stub generator
 rake rails:update:bin         # Use the new Rails 4 executables
 git add bin                   # Add bin/ to source control

But I tried it and got no changes. I'm on Rails 4

但我试过了,没有任何变化。我在 Rails 4 上

edit:

编辑:

I was working in another app and ran rails g modeland this popped up:

我正在另一个应用程序中工作并运行rails g model并弹出:

Bundler is using a binstub that was created for a different gem.
This is deprecated, in future versions you may need to `bundle binstub rails` to work around a system/bundle conflict.

gemfile

宝石文件

source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.3'
gem 'sass-rails', '~> 4.0.1'
gem 'uglifier'
gem 'coffee-rails'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder'
gem 'bcrypt-ruby'
gem "geocoder"
gem 'gmaps4rails'
gem "paperclip"
gem 'route_translator'
gem 'aws-sdk'
gem 'ckeditor'
gem 'soundcloud'
gem 'omniauth-facebook'
gem 'twitter'
gem 'pg'
gem 'unicorn'
gem 'sass'
gem 'compass', '0.12.2'
gem 'font-awesome-rails'
gem 'acts-as-taggable-on'
gem 'json', '1.7.7'
gem 'figaro'

#for mailchimp api
gem 'gibbon'

#for deploying
gem 'capistrano', '~> 3.0.1'
gem 'capistrano-rails', '~> 1.1.0'
gem 'capistrano-bundler'
gem 'capistrano-rbenv', '~> 2.0'
gem 'exception_notification'
gem 'textacular'
gem 'mail_form'
gem 'dumper'

group :doc do
  gem 'sdoc', require: false
end

# development gems
group :development, :test do
       # env variables
  gem "faker"
end

# Paging
gem 'kaminari'
gem 'will_paginate-bootstrap', '~> 1.0.0'

# Slugs and friendly id's
gem 'friendly_id'

# font-awesome
gem 'font-awesome-sass', '~> 4.0.2'

# production gems for heroku
group :production do
  gem 'rails_12factor'
  gem 'therubyracer'
  gem 'execjs'
end


# Devise
gem 'devise'


gem 'chosen-rails'


# Bootstrap 3
group :development, :test do
  gem 'rails_layout'  # Bootstrap 3 layout generator
end

gem 'bootstrap-sass', '~> 3.0.3.0'   


# RSpec
group :test, :development do
  gem "rspec-rails"
  gem "factory_girl_rails"
end

# Capybara
group :test do
  gem "capybara"
  gem 'email_spec'
end

gemfile.lock

gemfile.lock

GEM

宝石

  remote: https://rubygems.org/
  specs:
    actionmailer (4.0.3)
      actionpack (= 4.0.3)
      mail (~> 2.5.4)
    actionpack (4.0.3)
      activesupport (= 4.0.3)
      builder (~> 3.1.0)
      erubis (~> 2.7.0)
      rack (~> 1.5.2)
      rack-test (~> 0.6.2)
    activemodel (4.0.3)
      activesupport (= 4.0.3)
      builder (~> 3.1.0)
    activerecord (4.0.3)
      activemodel (= 4.0.3)
      activerecord-deprecated_finders (~> 1.0.2)
      activesupport (= 4.0.3)
      arel (~> 4.0.0)
    activerecord-deprecated_finders (1.0.3)
    activesupport (4.0.3)
      i18n (~> 0.6, >= 0.6.4)
      minitest (~> 4.2)
      multi_json (~> 1.3)
      thread_safe (~> 0.1)
      tzinfo (~> 0.3.37)
    acts-as-taggable-on (3.1.1)
      actionpack (>= 3, < 5)
      activerecord (>= 3, < 5)
      activesupport (>= 3, < 5)
    addressable (2.3.6)
    arel (4.0.2)
    aws-sdk (1.38.0)
      json (~> 1.4)
      nokogiri (>= 1.4.4)
      uuidtools (~> 2.1)
    bcrypt (3.1.7)
    bcrypt-ruby (3.1.5)
      bcrypt (>= 3.1.3)
    bootstrap-sass (3.0.3.0)
      sass (~> 3.2)
    builder (3.1.4)
    capistrano (3.0.1)
      i18n
      rake (>= 10.0.0)
      sshkit (>= 0.0.23)
    capistrano-bundler (1.1.2)
      capistrano (~> 3.0)
      sshkit (~> 1.2)
    capistrano-rails (1.1.0)
      capistrano (>= 3.0.0)
      capistrano-bundler (>= 1.0.0)
    capistrano-rbenv (2.0.1)
      capistrano (~> 3.0)
      sshkit (~> 1.3)
    capybara (2.2.1)
      mime-types (>= 1.16)
      nokogiri (>= 1.3.3)
      rack (>= 1.0.0)
      rack-test (>= 0.5.4)
      xpath (~> 2.0)
    chosen-rails (1.1.0)
      coffee-rails (>= 3.2)
      compass-rails (>= 1.1.2)
      railties (>= 3.0)
      sass-rails (>= 3.2)
    chunky_png (1.3.0)
    ckeditor (4.0.11)
      mime-types
      orm_adapter (~> 0.5.0)
    climate_control (0.0.3)
      activesupport (>= 3.0)
    cocaine (0.5.4)
      climate_control (>= 0.0.3, < 1.0)
    coffee-rails (4.0.1)
      coffee-script (>= 2.2.0)
      railties (>= 4.0.0, < 5.0)
    coffee-script (2.2.0)
      coffee-script-source
      execjs
    coffee-script-source (1.7.0)
    compass (0.12.2)
      chunky_png (~> 1.2)
      fssm (>= 0.2.7)
      sass (~> 3.1)
    compass-rails (1.1.7)
      compass (>= 0.12.2)
      sprockets (<= 2.11.0)
    devise (3.2.4)
      bcrypt (~> 3.0)
      orm_adapter (~> 0.1)
      railties (>= 3.2.6, < 5)
      thread_safe (~> 0.1)
      warden (~> 1.2.3)
    diff-lcs (1.2.5)
    dumper (1.5.0)
      multi_json (>= 1.0)
      multipart-post (>= 1.1.5)
      posix-spawn (>= 0.3.6)
    email_spec (1.5.0)
      launchy (~> 2.1)
      mail (~> 2.2)
    erubis (2.7.0)
    exception_notification (4.0.1)
      actionmailer (>= 3.0.4)
      activesupport (>= 3.0.4)
    execjs (2.0.2)
    factory_girl (4.4.0)
      activesupport (>= 3.0.0)
    factory_girl_rails (4.4.1)
      factory_girl (~> 4.4.0)
      railties (>= 3.0.0)
    faker (1.3.0)
      i18n (~> 0.5)
    faraday (0.9.0)
      multipart-post (>= 1.2, < 3)
    figaro (0.7.0)
      bundler (~> 1.0)
      rails (>= 3, < 5)
    font-awesome-rails (4.0.3.1)
      railties (>= 3.2, < 5.0)
    font-awesome-sass (4.0.3.1)
      sass (~> 3.2)
    friendly_id (5.0.3)
      activerecord (>= 4.0.0)
    fssm (0.2.10)
    geocoder (1.2.0)
    gibbon (1.1.2)
      httparty
      multi_json (>= 1.3.4)
    gmaps4rails (2.1.2)
    hashie (2.1.1)
    hike (1.2.3)
    httmultiparty (0.3.14)
      httparty (>= 0.7.3)
      mimemagic
      multipart-post
    httparty (0.11.0)
      multi_json (~> 1.0)
      multi_xml (>= 0.5.2)
    i18n (0.6.9)
    jbuilder (2.0.6)
      activesupport (>= 3.0.0, < 5)
      multi_json (~> 1.2)
    jquery-rails (3.1.0)
      railties (>= 3.0, < 5.0)
      thor (>= 0.14, < 2.0)
    json (1.7.7)
    jwt (0.1.11)
      multi_json (>= 1.5)
    kaminari (0.15.1)
      actionpack (>= 3.0.0)
      activesupport (>= 3.0.0)
    kgio (2.9.2)
    launchy (2.4.2)
      addressable (~> 2.3)
    libv8 (3.16.14.3)
    mail (2.5.4)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mail_form (1.5.0)
      actionmailer (>= 3.2, < 5)
      activemodel (>= 3.2, < 5)
    mime-types (1.25.1)
    mimemagic (0.2.1)
    mini_portile (0.5.3)
    minitest (4.7.5)
    multi_json (1.9.2)
    multi_xml (0.5.5)
    multipart-post (2.0.0)
    net-scp (1.2.0)
      net-ssh (>= 2.6.5)
    net-ssh (2.8.0)
    nokogiri (1.6.1)
      mini_portile (~> 0.5.0)
    oauth2 (0.9.3)
      faraday (>= 0.8, < 0.10)
      jwt (~> 0.1.8)
      multi_json (~> 1.3)
      multi_xml (~> 0.5)
      rack (~> 1.2)
    omniauth (1.2.1)
      hashie (>= 1.2, < 3)
      rack (~> 1.0)
    omniauth-facebook (1.6.0)
      omniauth-oauth2 (~> 1.1)
    omniauth-oauth2 (1.1.2)
      faraday (>= 0.8, < 0.10)
      multi_json (~> 1.3)
      oauth2 (~> 0.9.3)
      omniauth (~> 1.2)
    orm_adapter (0.5.0)
    paperclip (4.1.1)
      activemodel (>= 3.0.0)
      activesupport (>= 3.0.0)
      cocaine (~> 0.5.3)
      mime-types
    pg (0.17.1)
    polyglot (0.3.4)
    posix-spawn (0.3.8)
    rack (1.5.2)
    rack-test (0.6.2)
      rack (>= 1.0)
    rails (4.0.3)
      actionmailer (= 4.0.3)
      actionpack (= 4.0.3)
      activerecord (= 4.0.3)
      activesupport (= 4.0.3)
      bundler (>= 1.3.0, < 2.0)
      railties (= 4.0.3)
      sprockets-rails (~> 2.0.0)
    rails_12factor (0.0.2)
      rails_serve_static_assets
      rails_stdout_logging
    rails_layout (1.0.14)
    rails_serve_static_assets (0.0.2)
    rails_stdout_logging (0.0.3)
    railties (4.0.3)
      actionpack (= 4.0.3)
      activesupport (= 4.0.3)
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    raindrops (0.13.0)
    rake (10.3.0)
    rdoc (3.12.2)
      json (~> 1.4)
    ref (1.0.5)
    route_translator (3.2.0)
    rspec-core (2.14.8)
    rspec-expectations (2.14.5)
      diff-lcs (>= 1.1.3, < 2.0)
    rspec-mocks (2.14.6)
    rspec-rails (2.14.2)
      actionpack (>= 3.0)
      activemodel (>= 3.0)
      activesupport (>= 3.0)
      railties (>= 3.0)
      rspec-core (~> 2.14.0)
      rspec-expectations (~> 2.14.0)
      rspec-mocks (~> 2.14.0)
    sass (3.2.19)
    sass-rails (4.0.3)
      railties (>= 4.0.0, < 5.0)
      sass (~> 3.2.0)
      sprockets (~> 2.8, <= 2.11.0)
      sprockets-rails (~> 2.0)
    sdoc (0.3.20)
      json (>= 1.1.3)
      rdoc (~> 3.10)
    simple_oauth (0.2.0)
    soundcloud (0.3.2)
      hashie (~> 2.0)
      httmultiparty (~> 0.3.0)
    sprockets (2.11.0)
      hike (~> 1.2)
      multi_json (~> 1.0)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sprockets-rails (2.0.1)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      sprockets (~> 2.8)
    sshkit (1.4.0)
      net-scp (>= 1.1.2)
      net-ssh (>= 2.8.0)
      term-ansicolor
    term-ansicolor (1.3.0)
      tins (~> 1.0)
    textacular (3.2.0)
      activerecord (>= 3.0, < 4.2)
    therubyracer (0.12.1)
      libv8 (~> 3.16.14.0)
      ref
    thor (0.19.1)
    thread_safe (0.3.3)
    tilt (1.4.1)
    tins (1.1.0)
    treetop (1.4.15)
      polyglot
      polyglot (>= 0.3.1)
    turbolinks (2.2.2)
      coffee-rails
    twitter (4.8.1)
      faraday (~> 0.8, < 0.10)
      multi_json (~> 1.0)
      simple_oauth (~> 0.2)
    tzinfo (0.3.39)
    uglifier (2.2.1)
      execjs (>= 0.3.0)
      multi_json (~> 1.0, >= 1.0.2)
    unicorn (4.8.2)
      kgio (~> 2.6)
      rack
      raindrops (~> 0.7)
    uuidtools (2.1.4)
    warden (1.2.3)
      rack (>= 1.0)
    will_paginate (3.0.5)
    will_paginate-bootstrap (1.0.0)
      will_paginate (>= 3.0.3)
    xpath (2.0.0)
      nokogiri (~> 1.3)

PLATFORMS
  ruby

DEPENDENCIES
  acts-as-taggable-on
  aws-sdk
  bcrypt-ruby
  bootstrap-sass (~> 3.0.3.0)
  capistrano (~> 3.0.1)
  capistrano-bundler
  capistrano-rails (~> 1.1.0)
  capistrano-rbenv (~> 2.0)
  capybara
  chosen-rails
  ckeditor
  coffee-rails
  compass (= 0.12.2)
  devise
  dumper
  email_spec
  exception_notification
  execjs
  factory_girl_rails
  faker
  figaro
  font-awesome-rails
  font-awesome-sass (~> 4.0.2)
  friendly_id
  geocoder
  gibbon
  gmaps4rails
  jbuilder
  jquery-rails
  json (= 1.7.7)
  kaminari
  mail_form
  omniauth-facebook
  paperclip
  pg
  rails (= 4.0.3)
  rails_12factor
  rails_layout
  route_translator
  rspec-rails
  sass
  sass-rails (~> 4.0.1)
  sdoc
  soundcloud
  textacular
  therubyracer
  turbolinks
  twitter
  uglifier
  unicorn
  will_paginate-bootstrap (~> 1.0.0)

update2: If I clone the repo and bundle install, and the try to run rails sor any rake task, I replicate the bundlererrors. However, if I then do gem install bundlerand gem install rake, the new repo will work fine. Uninstalling and reinstalling the two gems in my original repo will not fix the issue. glad I've found a quasi fix, but would still like to get to the bottom of this.

update2:如果我克隆 repo 和bundle install,并尝试运行rails s或任何 rake 任务,我会复制bundler错误。但是,如果我再做gem install bundlerand gem install rake,新的 repo 将正常工作。在我的原始存储库中卸载并重新安装两个 gem 不会解决问题。很高兴我找到了一个准修复,但仍然想深入了解这个问题。

update3: I think I've narrowed it down to an issue with the gems, but not sure how to proceed. If I run the commands that trigger errors using my default gemset, there is no issue, it's only when I switch over to the gemset for this project that I get errors. I did not run bundle updatebefore testing commands with the default gemset.

更新 3:我想我已经将范围缩小到宝石的问题,但不确定如何继续。如果我使用默认 gemset 运行触发错误的命令,则没有问题,只有当我切换到此项目的 gemset 时才会出现错误。bundle update在使用默认 gemset 测试命令之前,我没有运行。

update4: I've cloned the repo on another machine and it replicates the issue. So I'm guessing it's time to start going back and checking commits from before this issue and see what happens? My other idea is to start commenting out gems / removing dependencies and seeing if that helps. Anything else I might want to look at?

更新 4:我在另一台机器上克隆了 repo,它复制了这个问题。所以我猜是时候开始回过头来检查这个问题之前的提交,看看会发生什么?我的另一个想法是开始注释 gems/删除依赖项,看看是否有帮助。还有什么我想看的吗?

After removing all gems, the warning with uninitialized constantis still present.

删除所有宝石后,警告uninitialized constant仍然存在。

回答by user2936314

These commands from the bundler FAQdid the trick:

捆绑程序常见问题解答中的这些命令可以解决问题

#remove project-specific settings
rm -rf .bundle/

# remove project-specific cached gems and repos
rm -rf vendor/cache/

# remove the saved resolve of the Gemfile
rm -rf Gemfile.lock

and then rebundling with bundle install

然后与 bundle install

edit: heroku deploy was also failing to start up because it starts the server with bin/rails s and my binstubs were all wonky. to fix this: BUNDLE INSTALL --BINSTUBS, again from bundler docs

编辑:heroku deploy 也无法启动,因为它用 bin/rails s 启动服务器,而我的 binstubs 都是不稳定的。解决这个问题:BUNDLE INSTALL --BINSTUBS,再次来自bundler docs

回答by Joshua Michael Waggoner

I just removed the lock using rm -rf Gemfile.lockwithin my project directory's root folder, and re-ran bundle installand everything works perfect now.

我刚刚rm -rf Gemfile.lock在我的项目目录的根文件夹中删除了锁,然后重新运行bundle install,现在一切正常。

回答by dostapn

I have problems like you, subscribe my case.

我有和你一样的问题,订阅我的案例。

config/applicataion.rb:

配置/应用程序.rb:

require_relative 'boot'

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module AppName
  class Application < Rails::Application
    config.load_defaults 5.2
  end
end

where require_relative 'boot'is very important, such as config/boot.rb:

哪里require_relative 'boot'很重要,比如config/boot.rb

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)

require 'bundler/setup' # Set up gems listed in the Gemfile.

has including bundler library into application.

已将捆绑程序库包含到应用程序中。