nil的undefined方法`environment':导入Bootstrap时的NilClass

时间:2014-03-13 23:04:52

标签: ruby-on-rails twitter-bootstrap

我一直在尝试将Bootstrap导入我的rails应用程序,而且我不太确定出了什么问题。我之前已经开始工作了,但我做了一个捆绑更新'并破坏了一些依赖(我认为)。我似乎修好了一切......除了Bootstrap。

我已经尝试删除并重新进入' bootstrap-sass'宝石......我无法弄清楚错误的位置。

感谢您的帮助!

Gemfile

source 'https://rubygems.org'
ruby '2.0.0'

gem 'rails', '4.0.1'
gem 'bootstrap-sass'
gem 'bcrypt-ruby', '3.1.2'
gem 'faker', '1.1.2'

group :development, :test do

  gem 'sqlite3', '1.3.8'
  gem 'rspec-rails'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0'
  gem 'factory_girl_rails', '4.2.1'
  gem 'database_cleaner', github: 'bmabey/database_cleaner'
end

gem 'sass-rails'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

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

group :production do
  gem 'pg', '0.15.1'
  gem 'rails_12factor', '0.0.2'
end

Gemfile.lock的

GIT
  remote: git://github.com/bmabey/database_cleaner.git
  revision: 35bd646903fc56af185a9fa9e360c568bb56756e
  specs:
    database_cleaner (1.2.0)

GEM
  remote: https://rubygems.org/
  specs:
    actionmailer (4.0.1)
      actionpack (= 4.0.1)
      mail (~> 2.5.4)
    actionpack (4.0.1)
      activesupport (= 4.0.1)
      builder (~> 3.1.0)
      erubis (~> 2.7.0)
      rack (~> 1.5.2)
      rack-test (~> 0.6.2)
    activemodel (4.0.1)
      activesupport (= 4.0.1)
      builder (~> 3.1.0)
    activerecord (4.0.1)
      activemodel (= 4.0.1)
      activerecord-deprecated_finders (~> 1.0.2)
      activesupport (= 4.0.1)
      arel (~> 4.0.0)
    activerecord-deprecated_finders (1.0.3)
    activesupport (4.0.1)
      i18n (~> 0.6, >= 0.6.4)
      minitest (~> 4.2)
      multi_json (~> 1.3)
      thread_safe (~> 0.1)
      tzinfo (~> 0.3.37)
    arel (4.0.2)
    atomic (1.1.15)
    bcrypt-ruby (3.1.2)
    bootstrap-sass (3.1.1.0)
      sass (~> 3.2)
    builder (3.1.4)
    capybara (2.1.0)
      mime-types (>= 1.16)
      nokogiri (>= 1.3.3)
      rack (>= 1.0.0)
      rack-test (>= 0.5.4)
      xpath (~> 2.0)
    childprocess (0.5.1)
      ffi (~> 1.0, >= 1.0.11)
    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)
    diff-lcs (1.2.5)
    erubis (2.7.0)
    execjs (2.0.2)
    factory_girl (4.2.0)
      activesupport (>= 3.0.0)
    factory_girl_rails (4.2.1)
      factory_girl (~> 4.2.0)
      railties (>= 3.0.0)
    faker (1.1.2)
      i18n (~> 0.5)
    ffi (1.9.3)
    hike (1.2.3)
    i18n (0.6.9)
    jbuilder (1.0.2)
      activesupport (>= 3.0.0)
    jquery-rails (3.0.4)
      railties (>= 3.0, < 5.0)
      thor (>= 0.14, < 2.0)
    json (1.8.1)
    mail (2.5.4)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mime-types (1.25.1)
    mini_portile (0.5.2)
    minitest (4.7.5)
    multi_json (1.9.0)
    nokogiri (1.6.1)
      mini_portile (~> 0.5.0)
    pg (0.15.1)
    polyglot (0.3.4)
    rack (1.5.2)
    rack-test (0.6.2)
      rack (>= 1.0)
    rails (4.0.1)
      actionmailer (= 4.0.1)
      actionpack (= 4.0.1)
      activerecord (= 4.0.1)
      activesupport (= 4.0.1)
      bundler (>= 1.3.0, < 2.0)
      railties (= 4.0.1)
      sprockets-rails (~> 2.0.0)
    rails_12factor (0.0.2)
      rails_serve_static_assets
      rails_stdout_logging
    rails_serve_static_assets (0.0.2)
    rails_stdout_logging (0.0.3)
    railties (4.0.1)
      actionpack (= 4.0.1)
      activesupport (= 4.0.1)
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (10.1.1)
    rdoc (3.12.2)
      json (~> 1.4)
    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.1)
      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)
    rubyzip (0.9.9)
    sass (3.3.2)
    sass-rails (4.0.1)
      railties (>= 4.0.0, < 5.0)
      sass (>= 3.1.10)
      sprockets-rails (~> 2.0.0)
    sdoc (0.3.20)
      json (>= 1.1.3)
      rdoc (~> 3.10)
    selenium-webdriver (2.35.1)
      childprocess (>= 0.2.5)
      multi_json (~> 1.0)
      rubyzip (< 1.0.0)
      websocket (~> 1.0.4)
    sprockets (2.12.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)
    sqlite3 (1.3.8)
    thor (0.18.1)
    thread_safe (0.2.0)
      atomic (>= 1.1.7, < 2)
    tilt (1.4.1)
    treetop (1.4.15)
      polyglot
      polyglot (>= 0.3.1)
    turbolinks (1.1.1)
      coffee-rails
    tzinfo (0.3.39)
    uglifier (2.1.1)
      execjs (>= 0.3.0)
      multi_json (~> 1.0, >= 1.0.2)
    websocket (1.0.7)
    xpath (2.0.0)
      nokogiri (~> 1.3)

PLATFORMS
  ruby

DEPENDENCIES
  bcrypt-ruby (= 3.1.2)
  bootstrap-sass
  capybara (= 2.1.0)
  coffee-rails (= 4.0.1)
  database_cleaner!
  factory_girl_rails (= 4.2.1)
  faker (= 1.1.2)
  jbuilder (= 1.0.2)
  jquery-rails (= 3.0.4)
  pg (= 0.15.1)
  rails (= 4.0.1)
  rails_12factor (= 0.0.2)
  rspec-rails
  sass-rails
  sdoc (= 0.3.20)
  selenium-webdriver (= 2.35.1)
  sqlite3 (= 1.3.8)
  turbolinks (= 1.1.1)
  uglifier (= 2.1.1)

5 个答案:

答案 0 :(得分:62)

我也遇到了这个问题,它看起来像是与最新版本的sprockets有关的问题,您可以通过更改Gemfile.lock来修复它,但是如果有人或某个东西捆绑更新它&#39我会再次破产,我知道有些地方不想登录Gemfile.lock,直到有人推动上台。

如果你使用优于4.0.0的sass-rails,它将解决问题......

gem 'sass-rails', '~> 4.0.0'

问题解决了,它会将链轮限制在2.11。从生成的Gemfile.lock ...

    sass-rails (4.0.2)
      railties (>= 4.0.0, < 5.0)
      sass (~> 3.2.0)
      sprockets (~> 2.8, <= 2.11.0)
      sprockets-rails (~> 2.0.0)

答案 1 :(得分:35)

我今天遇到了这个问题,并设法解决了这个问题。

有趣的是,昨天一切都很好(我有证据,因为我昨晚睡觉前把工作版本推到了Heroku),但今天事情在我做bundle update之后就崩溃了。所以我经历了它的终端输出,并注意到sprockets gem更新为2.12.0。然后我回过头来意识到它昨天是2.11.0。嗯...

预感,我编辑了我的gemfile并添加了这一行:

gem 'sprockets', '2.11.0'

基本上,强制bundler安装该特定版本。然后我做了另一个bundle update瞧!事情又开始了。

答案 2 :(得分:28)

我昨天将我的项目更新为rails 4.0.4并收到了同样的错误。正在运行&#c;捆绑更新&#39;对我没有任何作用。卸载并重新安装sass-rails只安装了4.0.1版。我不得不改变我的Gemfile:

gem 'sass-rails'

为:

gem 'sass-rails', '~> 4.0.2'

然后,在运行&#39;捆绑更新&#39;之后,rspec现在可以正常工作。

答案 3 :(得分:7)

这是一个宝石版本冲突。

请使用

gem 'sass-rails', '~> 4.0.0'

而不是

gem 'sass-rails'

在此之后立即执行bundle update。那应该解决它

答案 4 :(得分:7)

在将sass更新为3.3.3并将sprockets更新为2.12.0之后,我刚遇到此问题。

我跑了$ bundle outdated来检查哪些宝石已经过时,确实包含了sass-rails

* sass-rails (4.0.2 > 4.0.1)

使用$ bundle update sass-rails为我解决了这个问题。

如果您使用$ bundle update,它也可以解决问题,但也会更新其他非版本约束的宝石。逐个更新宝石更耗时,但对于诊断宝石冲突更有用。