2012-02-20 9 views
6

stavo cercando di conoscere il quadro Sinatra ruby ​​seguendo questo tutorial:ruby ​​DataMapper non caricherà

http://net.tutsplus.com/tutorials/ruby/singing-with-sinatra-the-recall-app-2/

tuttavia, dopo aver eseguito l'installazione del gioiello e la scrittura di un semplice server Sinatra in test.rb come così:

require 'sinatra' 
require 'datamapper' 

get '/' do 
    "Hello, World!" 
end 

ma quando faccio funzionare l'ordine ruby test.rb, ottengo il seguente errore:

/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- datamapper (LoadError) 
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from datamapper_test.rb:2:in `<main>' 
[email protected]:~/Dropbox/Repositories/sandbox/sinatra$ ruby datamapper_test.rb 
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- datamapper (LoadError) 
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from test.rb:3:in `<main>' 

sembra che non riesca a trovare la gemma del datamapper. come posso risolvere questo?

EDIT: usando ruby ​​1.9.2

EDIT (di nuovo): (parital) in uscita dal gem list:

data_mapper (1.2.0) 
data_objects (0.10.8) 
datamapper (1.2.0) 
devise (1.4.5) 
directory_watcher (1.4.0) 
dm-aggregates (1.2.0) 
dm-constraints (1.2.0) 
dm-core (1.2.0) 
dm-do-adapter (1.2.0) 
dm-migrations (1.2.0) 
dm-serializer (1.2.1) 
dm-sqlite-adapter (1.2.0) 
d m-timestamps (1.2.0) 
dm-transactions (1.2.0) 
dm-types (1.2.1) 
dm-validations (1.2.0) 
do_sqlite3 (0.10.8) 
sinatra (1.3.2, 1.2.6) 
sqlite3 (1.3.5, 1.3.4) 
sqlite3-ruby (1.3.3) 
+0

Perché? Non necessario in 1.9. – three

+0

sì, giusto. Scrivi commenti divertenti e poi li cancella di nuovo. Il mio ultimo commento è una risposta a un commento cancellato relativo alla richiesta di rubygems ... – three

+0

@three: Il mio errore. Io uso Ruby 1.8.7, quindi la prima cosa che ho notato è che :) Comunque, ora la mia risposta è inutile, quindi la cancellerò. –

risposta

27

È necessario require 'data_mapper', non datamapper.

Nota c'è una gemma datamapper nonché una gemma data_mapper, ma sono la stessa cosa, solo nomi diversi. È necessario utilizzare data_mapper come nome della libreria in entrambi.

Per quanto posso dire datamapper è una copia diretta di data_mapper:

$ diff -r data_mapper-1.2.0/ datamapper-1.2.0/ 
diff -r data_mapper-1.2.0/Rakefile datamapper-1.2.0/Rakefile 
21c21 
< GEM_NAME   = 'data_mapper' 
--- 
> GEM_NAME   = 'datamapper' 
+0

Sì, 'gem 'data_mapper'' ha funzionato per me. 'datamapper' non è necessario. –

0

gem install datamapper nel terminale potrebbe aiutare :) ma vi sarà anche bisogno di un database e un adattatore e vorrete usare la gemma in qualche modo. Buona fortuna e buon divertimento con dm + sinatra!

+0

ho eseguito gem install datamapper e ho installato sqlite3 e le gemme nessecary. – GSto

Problemi correlati