compass install bootstrap -> NoMethodError в строке [32] sass-rails-3.2.6/lib/sass/rails/helpers.rb: неопределенный метод `[]' для nil:NilClass

После запуска этой команды

compass install bootstrap

Я получаю это сообщение:

identical sass/styles.scss

...

identical javascripts/bootstrap-typeahead.js
NoMethodError on line ["32"] of /Users/xxx/.rvm/gems/ruby-1.9.3-p327@favy/gems/sass-rails-3.2.6/lib/sass/rails/helpers.rb: undefined method `[]' for nil:NilClass
Run with --trace to see the full backtrace

в /Users/xxx/.rvm/gems/ruby-1.9.3-p327@favy/gems/sass-rails-3.2.6/lib/sass/rails/helpers.rb

 31     def resolver
 32       options[:custom][:resolver]
 33     end

Я попробовал обходной путь -> https://gist.github.com/castus/4044953

def resolver
  if ::Rails::env == "production"
    options[:custom][:resolver]
  else
    Resolver.new(CompassRails.context)
  end
end

и все равно не повезло :)

У меня есть это в моем config/compass.rb

require 'bootstrap-sass'

И мой гемфайл

source 'http://rubygems.org'

gem "paperclip"
gem 'bootstrap-sass', '~> 2.3.1.0'
gem 'compass-rails'
gem 'bootswatch-rails'

gem 'gmaps4rails'

gem 'rails', '3.2.13'
gem 'activerecord-postgresql-adapter'
gem 'devise'
gem 'sass-rails', '~> 3.2.3'
gem "haml"
gem "haml-rails"

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'debugger'

person whitesiroi    schedule 16.04.2013    source источник


Ответы (1)


Вам вообще не нужен «Компас», если вы используете Rails и Bootstrap-sass. Compass предназначен для сайтов, не использующих Rails.

Вот шаги для установки и bootstrap-sass

  1. Добавьте его в Gemfile и bundle install

  2. Переименуйте application.css в application.css.scss.

  3. Удалите все комментарии в application.css.scss, сделайте его пустым

  4. Добавить @import bootstrap

Вы сделали! Относитесь к нему как к обычному файлу css и используйте @import, чтобы делать все, что вам нравится. Но больше никаких require в комментарии!

person Billy Chan    schedule 16.04.2013
comment
Спасибо :) Я просто хочу подтвердить. Могу ли я использовать все это (compass-style.org/reference/compass) после установки Bootstrap-дерзость? - person whitesiroi; 16.04.2013
comment
@whitesiroi, вы упомянули CSS-фреймворк Compass. У вас уже есть CSS-фреймворк — Twitter bootstrap. Использование двух вместе не является необходимым и приведет к конфликту. - person Billy Chan; 16.04.2013