2010-10-26 13 views
17

Sono nuovo alla programmazione (in precedenza facevo solo html/css/design) cercando di iniziare a imparare RoR tramite il libro Simply Rails 2. Comunque voglio iniziare con le versioni più recenti di Ruby (1.9.2) e Rails (3) quindi sono costretto a ottenere tutto configurato senza il libro. Ho cercato molto tramite google e su stackoverflow. Quando corro rails server utilizza automaticamente Webrick, ma voglio usare Mongrel. Ho installato il prerelease Mongrel tramite gem install mongrel --pre e rimosso la versione precedente. Ho letto che per far funzionare Mongrel con rails server ho dovuto aggiungere gem 'mongrel' al Gemfile, ma non so quale dovrei aggiungere (ho provato diversi ma non è cambiato nulla). Così ho deciso di esaminare la documentazione bastardo via git e imparato a conoscere mongrel_rails start quando corro che ottengo questo:LoadError in esecuzione Mongrel con Rails3 e Ruby 1.9.2

C:\Ruby192\shovell>mongrel_rails start 
** Starting Mongrel listening at 0.0.0.0:3000 
** Starting Rails with development environment... C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0.rc.6/lib/bundler/runtime.rb:27:in 
'block in setup': You have already activated mongrel 1.2. 
0.pre2, but your Gemfile requires mongrel 1.1.5. Consider using bundle exec. (Gem::LoadError) 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0.rc.6/lib/bundler/spec_set.rb:12:in 
'block in each' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0.rc.6/lib/bundler/spec_set.rb:12:in 
'each' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0.rc.6/lib/bundler/spec_set.rb:12:in 
'each' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0.rc.6/lib/bundler/runtime.rb:17:in 
'setup' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0.rc.6/lib/bundler.rb:100:in 
'setup' 
from C:/Ruby192/shovell/config/boot.rb:8:in '<top (required)>' 
from <internal:lib/rubygems/custom_require>:29:in 'require' 
from <internal:lib/rubygems/custom_require>:29:in 'require' 
from C:/Ruby192/shovell/config/application.rb:1:in '<top (required)>' 
from <internal:lib/rubygems/custom_require>:29:in 'require' 
from <internal:lib/rubygems/custom_require>:29:in 'require' 
from C:/Ruby192/shovell/config/environment.rb:2:in '<top (required)>' 
from <internal:lib/rubygems/custom_require>:29:in 'require' 
from <internal:lib/rubygems/custom_require>:29:in 'require' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/rails.rb:147:in 
'rails' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:116:in 
'block (2 levels) in run' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/configurator.rb:149:in 
'call' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/configurator.rb:149:in 
'listener' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:102:in 
'block in run' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/configurator.rb:50:in 
'call' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/configurator.rb:50:in 
'initialize' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:86:in 
'new' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:86:in 
'run' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/command.rb:210:in 
'run' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:282:in 
'<top (required)>' 
from C:/Ruby192/bin/mongrel_rails:19:in 'load' 
from C:/Ruby192/bin/mongrel_rails:19:in '<main>'` 

La mia ipotesi migliore è che C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.0.rc.6/lib/bundler/runtime.rb:27:in 'block in setup': You have already activated mongrel 1.2. 0.pre2, but your Gemfile requires mongrel 1.1.5. Consider using bundle exec. è la chiave, ma non sono stati in grado di risolverlo.

Apprezzerei qualsiasi aiuto in modo che possa iniziare a imparare effettivamente la lingua !

EDIT: sono stato in grado di superare il problema di cui sopra grazie a @duddle ma ora ho un altro problema ... sto ottenendo questo errore:

C:\Ruby192\shovell>mongrel_rails start 
** Starting Mongrel listening at 0.0.0.0:3000 
** Starting Rails with development environment... C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.rc2/lib/active_support/dependencies.rb:239:in 
'req uire': no such file to load -- dispatcher (LoadError) 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.rc2/lib/active_support/dependencies.rb:239:in 'block in require' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.rc2/lib/active_support/dependencies.rb:225:in 'block in load_dependency' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.rc2/lib/active_support/dependencies.rb:591:in 'new_constants_in' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.rc2/lib/active_support/dependencies.rb:225:in 'load_dependency' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.rc2/lib/active_support/dependencies.rb:239:in 'require' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/rails.rb:148:in 'rails' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:116:in' block (2 levels) in run' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/configurator.rb:149:in 'call' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/configurator.rb:149:in 'listener' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:102:in' block in run' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/configurator.rb:50:in 'call' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/configurator.rb:50:in 'initialize' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:86:in 'new' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:86:in'run' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/lib/mongrel/command.rb:210:in 'run' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mongrel-1.2.0.pre2-x86-mingw32/bin/mongrel_rails:282:in '<top (required)>' 
from C:/Ruby192/bin/mongrel_rails:19:in 'load' 
from C:/Ruby192/bin/mongrel_rails:19:in '<main> 

La mia ipotesi migliore a questo punto (1am ... molto stanco) è che mi manca un file o qualcosa non è chiamato come dovrebbe essere ... forse ho bisogno di usare l'azione :require nel mio Gemfile .. forse ho solo bisogno di dormire su di esso. Ha.

Ancora una volta, grazie a ton @duddle per farmi superare il primo errore! Qualsiasi altro aiuto è molto apprezzato!

+0

avete eseguito nuovamente 'bundle install' o/e' bundle update'? Quindi provare ad avviare il server in modo normale tramite 'rails server'. Dopo aver aggiunto 'gem' 'mongrel', '> = 1.2.0.pre2'' al tuo Gemfile non devi più usare 'mongrel_rails start'. – crispy

+0

Haha, mi sono svegliato questa mattina e mi sono reso conto che avevo commentato la battuta ("#") whoops. tutto risolto ora! Funziona con 'rails server' Grazie mille! ... Quando avrò più reputazione tornerò qui e faccio +1 sulla tua risposta. – tehaaron

risposta

32

You have already activated mongrel 1.2. 0.pre2, but your Gemfile requires mongrel 1.1.5. Consider using bundle exec. is the key but I have not been able to solve it.

Eri quasi arrivato!

gem 'mongrel', '>= 1.2.0.pre2' 

Il secondo parametro indica Bundler per richiedere una versione uguale o superiore a 1.2.0.pre2, che bisogna usare quando si utilizza di Ruby 1.9.2.

pagina Bundler fornisce un bel riferimento su come utilizzare il Gemfile: http://gembundler.com/gemfile.html

+0

Grazie mille, ho letto la pagina di gembundler e sono riuscito a capire quale Gemfile modificare (la mia app). Tuttavia, ora ho un altro problema ... vai a capire. Si prega di controllare la mia modifica – tehaaron

5

Solo nel caso non lo capirlo.

Ho eseguito gem install 'dispatcher' e aggiunto gem 'dispatcher' nel Gemfile della mia app. Quindi tutto andava bene.

Dalla piccola esperienza che ho con ruby, ogni volta che ho un problema "richiede - nessun file da caricare". È perché mi manca una gemma specifica.

Hth ...

+0

grazie mille! finalmente hai salvato il mio tempo! –

+0

Questo è quello che mi ha portato al prossimo passo alla fine. –

0

Hey, mi sono imbattuto in questo problema, la soluzione è stata abbastanza semplice:

Basta aggiungere la gemma 'spedizione'

;-)

+1

riporta l'errore: costante non inizializzata Dispatch :: Source :: PROC_EXIT – appsthatmatter

+0

sì, sto lottando con lo stesso numero –

4

aggiunge questa riga al file gemma:

gem 'mongrel', '>= 1.2.0.pre2' 

al prompt dei comandi:

run bundle install

inizio bastardo utilizzare questo comando:

rails server 
0

La gemma bastardino non è compatibile con Ruby 1.9.2; dovrai usare la gemma "sho-mongrel" al suo posto.

+3

Per aggiungere e chiarire la risposta, la ** mongrel gem ** predefinita non è compatibile. Se usi mongrel> = 1.2.0pre2, nella mia esperienza, va bene con Ruby 1.9.2. Non ho familiarità con "sho-mongrel" quindi non posso commentare questo suggerimento. – rholmes

0

tenta di installare utilizzando:

gem install mongrel --pre 

ha funzionato per me perfetto !!!

Problemi correlati