Sam Soffes

Compass and Rails 3.1

Posted on

Here's how I finally got Compass working with Rails 3.1rc4 (with includes, sprites, etc).

Gemfile excerpt:

gem 'sass-rails', :git => '', :ref => '031236b31eaf20658226a9ae051749cc6647c33f'
gem 'compass', :git => '', :ref => '2c1fcfcad708875d10db65740aabf417abc636a6'
gem 'sprockets', '2.0.0.beta.10'

config/compass.rb excerpt:

http_images_path = '/assets/'

That's it. You don't have to do any of the crazy initializer hacks or anything like that. (If you were doing that, you can remove it all). The rest of my Gemfile and compass.rb are just standard stuff. Here's my full compass.rb if that helps though.

The only other thing you'll need to do is be sure all of your stylesheets are in app/assets/stylesheets/ and end in .css.scss or .css.sass. Eventually you won't have to include the .css part if you don't want to, but for now, it's required (due to Sprockets).

Big thanks to Jon McCartie and Chris Eppstein for all of their help!

Update: Rails 3.1.0.rc5

Rails 3.1.0.rc5 just came out. Here's the updates for rc5.

Gemfile excerpt:

gem 'sass-rails', :git => '', :ref => '231b14da040c3ad320076cbaaa70190d14b95d37'
gem 'compass', :git => '', :ref => '33263caffe5548a64253976c0a034afe1ed567f4'

That's it! Your compass.rb remains the same as before with http_images_path. You don't need to add .css to partials' file names any more now!