2011-09-05 13 views
5

Per la maggior parte ho seguito la direzione disposto hereImpossibile ottenere Rails 3.1, Compass, Sass, Blueprint lavorando su Heroku Cedar

Che è provocato il seguente errore proveniente dal inizializzazione che mi ha chiesto di creare:

from /app/config/initializers/sass.rb:1:in `<top (required)>' 
2011-09-05T16:45:42+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/railties- 3.1.0/lib/rails/railtie/configuration.rb:78:in `method_missing': undefined method `sass' for # <Rails::Application::Configuration:0x00000003845528> (NoMethodError) 

Anche la pagina di Heroku su come iniziare non è di grande aiuto. Fondamentalmente sono le stesse istruzioni senza l'inizializzatore. Tuttavia senza di esso, quindi non riesce a trovare alcuno dei materiali del progetto, quindi non posso ancora iniziare.

Qualcuno là fuori che ha fatto più lontano di me?

Modifica per più storia:

sono andato attraverso una serie di errori per arrivare qui così ho pensato che dovrei scrivere tutti fuori. Il primo problema che ho avuto è stato che html5-boilerplate era in: risorse che significava che il metodo ie_html non è stato trovato, quindi l'ho estratto da: assets.

Ciò ha provocato questo errore perché html5-boilerplate dipende bussola:

2011-09-05T17:15:47+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/bundler/gems/compass-b7f44a48d375/lib/compass/version.rb:56:in `const_missing': uninitialized constant Compass::Frameworks (NameError) 
2011-09-05T17:15:47+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/bundler/gems/compass-html5-boilerplate-405f9ddbca56/lib/html5-boilerplate.rb:1:in `<top (required)>' 

risposta

9

Alla fine la soluzione finale era fare anche sass-guide globale (o almeno sembra essere stato). In un certo senso mi sento come se fossi riuscito a farlo funzionare per coincidenza, ma eccolo qui.

Ho estratto la bussola da: risorse e l'ho resa anche globale. Che poi ha portato ad errori con la compilazione dei file SCSS che alla fine mi ha portato ad aggiornare a Ceder che poi ha portato alla mancanza degli errori del progetto.

Infine ho aggiunto l'inizializzatore che, presumo, ha lo scopo di aggiungere le informazioni sulla struttura della bussola al percorso di configurazione. Spero che tutto aiuti.

Ecco il codice rilevante:

gem 'heroku' 
gem 'haml' 
gem 'compass', :git => 'git://github.com/chriseppstein/compass.git' 
gem 'html5-boilerplate', :git => 'git://github.com/sporkd/compass-html5-boilerplate.git' 
gem 'sass-rails', " ~> 3.1.0" 

Nota le versioni GitHub per bussola e HTML5-boilerplate (non è necessario h5bp se non ne fanno uso).

L'inizializzazione è:

Rails.configuration.sass.tap do |config| 
    config.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets" 
end 
+0

Avere lo stesso problema al momento e spostare sass-rails dalle risorse globali non sembra risolverlo sulla mia parte ... speriamo di poterlo scoprire ... – Pygmalion

+0

Avrei dovuto essere più dettagliato, ho dovuto spostare alcune cose per essere globali, l'ho aggiornato. –

1

Il problema non è che Sass-rotaie deve essere globale, ma che qualcosa nel tuo set globale si basa sul Sass-rails.

Per me, la soluzione era spostare la bussola nel gruppo di risorse.

+0

Sì H5BP viene chiamato nella vista base HAML e ha finito per dover essere globale. Dipende da Compass e questo a sua volta dipende da sass-rail. Quindi è un po 'un effetto a catena. –

+0

Come si sposta la bussola nel gruppo di risorse? Quale codice deve essere cambiato? – Jaryl

+0

nel file Gemfile: gruppo: asset gem 'sass-rails' fine –

0

ho messo qui alcune istruzioni dettagliate: http://www.mattvanhorn.com/2012/01/07/heroku-cedar-assets-ruby-1-9/

Copre ottenere un Rails base 3.1 app con quadro Compass in esecuzione sulla pila Heroku Cedar.

Ci sono anche collegamenti a un repository Github (http://github.com/mattvanhorn/placepanda/commits) in modo da poter seguire passo-passo con i commit.

Potrebbe essere necessario aggiungere anche load_paths in application.rb se si sta utilizzando blueprint.Io uso Twitter bootstrap su un altro app come questo, e ho:

if Rails.configuration.respond_to?(:sass) 
    config.sass.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets" 
    config.sass.load_paths << "#{Gem.loaded_specs['compass_twitter_bootstrap'].full_gem_path}/lib/../stylesheets" 
end 

nel mio application.rb, il condizionale è quello di prevenire Heroku da barfing all'avvio, quando config.sass saranno più disponibili come è per la pre-compilazione.

Problemi correlati