Rails未初始化常量Bundler(NameError)

13

当我运行任何Rails命令(例如rails srails 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'

错误信息中第7行是:

Bundler.require(:default, Rails.env)

执行命令bundle exec rails s成功,但这并没有帮助Heroku应用程序。我已经验证了which rubywhich railswhich bundler。我还尝试启动一个新的rvm gemset并重新安装bundle,但Heroku错误仍然相同:

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

运行 bundle check 没有问题。

有些类似的问题建议这样做:

 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

但我尝试了它,没有任何变化。我使用的是Rails 4

编辑:

我正在另一个应用程序中工作,并运行了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

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)
更新2:如果我克隆该存储库并运行“bundle install”,然后尝试运行“rails s”或任何rake任务,我会复制bundler错误。 但是,如果我运行gem install bundlergem install rake,新的存储库将正常工作。卸载并重新安装原始存储库中的这两个gems将无法解决问题。很高兴我找到了一个准解决方法,但仍想彻底解决此问题。
更新3:我认为我已将其缩小为与gems有关的问题,但不确定如何继续。 如果我使用默认的gemset运行触发错误的命令,则没有问题,只有当我切换到此项目的gemset时才会出现错误。 我在测试默认gemset命令之前没有运行bundle update
更新4:我已经在另一台机器上克隆了该存储库,并且也出现了问题。 所以我猜现在是时候开始回顾此问题之前的提交并查看会发生什么了? 我的另一个想法是开始注释掉gems / 删除依赖项并查看是否有帮助。 我还应该查看其他什么?
删除所有gems后,未初始化的常量警告仍然存在。

能否分享你的Gemfile和Gemfile.lock文件? - muttonlamb
我已经添加了它们。我还尝试在另一台电脑上克隆库,但出现了相同的错误,这让我相信这不是系统问题,而是我的文件出了问题。我不太确定该从哪里寻找答案,因为所有相关的问题都只是关于安装或卸载bundler。 - user2936314
3个回答

19

通过 bundler FAQ 中的这些命令成功解决了问题:

#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

然后使用bundle install重新打包。

编辑:Heroku部署也无法启动,因为它使用bin/rails s启动服务器,而我的二进制文件有问题。要解决此问题,请使用BUNDLE INSTALL --BINSTUBS,同样来自bundler文档


20
哦天啊,一个人不应该在不理解的情况下rm Gemfile.lockbundle install,因为这基本上意味着升级所有宝石。 - Hertzel Guinness
如果这是一个问题,您可以在删除Gemfile之前指定明确的版本并防止主要版本更改。 - nikkypx
我刚刚运行了前两个命令,没有删除Gemfile.lock文件,它运行得非常好。谢谢。 - Ahmet Ardal

1

我刚刚在项目目录的根文件夹中使用rm -rf Gemfile.lock命令删除了锁定文件,然后重新运行bundle install,现在一切都很完美。


0

我和你一样遇到了问题,请关注我的案例。

config/applicataion.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

require_relative 'boot'非常重要,例如config/boot.rb

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

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

将 bundler 库包含进应用程序中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接