2012-11-08 12 views
12

Ho appena aggiornato le gemme della mia app per rotaie con gem update e bundle update. Quando ho cercato di provarlo con rails s mi dà questo errore:Errore railries gemma "metodo indefinito: 'less'"

/Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/railtie/configuration.rb:85:in method_missing ': metodo non definito less' for #<Rails::Application::Configuration:0x0000010308a300> (NoMethodError)

Il resto del messaggio di errore è questa:

from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/twitter-bootstrap-rails-2.1.6/lib/twitter/bootstrap/rails/engine.rb:15:in `block in <class:Engine>' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `instance_exec' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `run' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/initializable.rb:55:in `block in run_initializers' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `each' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `run_initializers' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/application.rb:136:in `initialize!' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `method_missing' 
    from /Users/Richard/Code/Rails/rgsimms/config/environment.rb:5:in `<top (required)>' 
    from /Users/Richard/Code/Rails/rgsimms/config.ru:4:in `require' 
    from /Users/Richard/Code/Rails/rgsimms/config.ru:4:in `block in <main>' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize' 
    from /Users/Richard/Code/Rails/rgsimms/config.ru:1:in `new' 
    from /Users/Richard/Code/Rails/rgsimms/config.ru:1:in `<main>' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/rack-1.4.1/lib/rack/server.rb:200:in `app' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/commands/server.rb:46:in `app' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/rack-1.4.1/lib/rack/server.rb:252:in `start' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/commands/server.rb:70:in `start' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/commands.rb:55:in `block in <top (required)>' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/commands.rb:50:in `tap' 
    from /Users/Richard/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.2.3/lib/rails/commands.rb:50:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

questo è un errore con la gemma di Bootstrap di Twitter? Sto ancora imparando, quindi, come avrei risolto questo problema? Qualsiasi aiuto è fantastico.

risposta

33

La gemma di bootstrap di Twitter dipende dalla gemma in meno. Da the docs:

gem "therubyracer" 
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS 
gem "twitter-bootstrap-rails" 

Personalmente ho trovato più facile a Twitter bootstrap per scaricare solo i file dal official site nella cartella vendor/patrimonio. L'aggiornamento dalla gemma è leggermente più facile che a mano, ma quando si aggiorna il bootstrap, si preferisce farlo "a mano" e controllarlo a occhio aperto "comunque - preferisco lo sforzo extra, per assicurarmi che non venga fatto alla leggera. Inoltre, è molto difficile rimuovere alcune parti sensibili (ad esempio) della gemma, senza (per quanto posso dire) "non specificando" gli stili. Le cose reattive cambiano, dalla versione alla versione, in termini di dimensioni, quindi non puoi fare affidamento su tutto ciò che funziona. Non riesco davvero a vedere alcun vantaggio nell'usare la gemma.

Aggiornamento

V'è ora un gioiello ufficiale per questo, che vi consiglio di check-out: https://github.com/twbs/bootstrap-sass

+1

Grazie, signore. Ho rimosso la gemma del bootstrap e tutto sta funzionando di nuovo. L'ho usato dopo averlo visto su Railscast. – Tamachan87

+1

Per qualche motivo, l'aggiornamento di twitter ha fatto apparire questo errore - precedente meno e il terubyracer era nel mio gemfile, e non sapevo perché. Nota che il terubyracer non è consigliato su heroku: https://devcenter.heroku.com/articles/rails3x-asset-pipeline-cedar#troubleshooting –

+0

Cattiva idea. Scopri perché la gemma non funziona correttamente. Ora dovrai aggiornare manualmente questo blocco di codice ogni volta che vuoi una correzione o un incremento di versione da bootstrap. Se vuoi bloccare una versione specifica, fallo nel tuo Gemfile. –

Problemi correlati