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

Aja*_*ayc 49 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
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

Aar*_*ley 62

我也遇到了这个问题,它看起来像是与最新版本的sprockets有关的问题,你可以通过更改Gemfile.lock来修复它,但如果有人或某事做了更新,它会再次被打破我知道有些地方不喜欢检查Gemfile.lock,直到有一个推动阶段.

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

gem 'sass-rails', '~> 4.0.0'
Run Code Online (Sandbox Code Playgroud)

问题解决了,它将链轮限制在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)
Run Code Online (Sandbox Code Playgroud)

  • 是的,你应该使用"〜> 4.0.2"代替:`gem'ssass-rails','〜> 4.0.2'`. (4认同)

Ege*_*soz 36

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

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

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

gem 'sprockets', '2.11.0'
Run Code Online (Sandbox Code Playgroud)

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


skn*_*ght 28

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

gem 'sass-rails'
Run Code Online (Sandbox Code Playgroud)

至:

gem 'sass-rails', '~> 4.0.2'
Run Code Online (Sandbox Code Playgroud)

然后,在运行'bundle update'之后,rspec现在可以正常工作了.

  • 谢谢谢谢谢谢谢谢谢谢. (2认同)

anb*_*yar 7

这是一个宝石版本的冲突.

请用

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

代替

gem 'sass-rails'

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


Jam*_*mes 7

我刚刚在更新sass到3.3.3和sprockets2.12.0 之后遇到了这个问题.

我跑去$ bundle outdated检查哪些宝石已经过时,确实sass-rails包括在内:

* sass-rails (4.0.2 > 4.0.1)
Run Code Online (Sandbox Code Playgroud)

使用$ bundle update sass-rails为我解决了它.

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