2012-02-20 21 views
6

yo estaba tratando de aprender sobre el marco Sinatra rubí siguiendo este tutorial: sin embargorubí no se carga

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

, después de ejecutar la gema instalar y escribir un servidor Sinatra simple en test.rb como por lo que:

require 'sinatra' 
require 'datamapper' 

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

pero cuando funciono con el comando ruby test.rb, me sale el siguiente error:

/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>' 

parece que no puede encontrar la gema datamapper. ¿Cómo puedo arreglar esto?

EDITAR: el uso de rubí 1.9.2

EDITAR (de nuevo): (parital) de salida de 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

¿Por qué? No es necesario en 1.9. – three

+0

sí, a la derecha. Escribir comentarios divertidos y luego eliminarlos de nuevo. Mi último comentario es una respuesta a un comentario eliminado sobre la necesidad de rubygems ... – three

+0

@three: Mi error. Uso Ruby 1.8.7, así que lo primero que noté fue que :) De todos modos, parece que mi respuesta es inútil ahora, así que la eliminaré. –

Respuesta

27

Necesita require 'data_mapper', no datamapper.

Tenga en cuenta que hay una gema datamapper, así como una gema data_mapper, pero son la misma cosa, solo que con diferentes nombres. Necesitará usar data_mapper como el nombre de la biblioteca en ambos.

Por lo que yo puedo decir datamapper es una copia directa de 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'' funcionó para mí. 'datamapper' no es necesario. –

0

gem install datamapper en su terminal podría ayudar :) pero usted también necesita una base de datos y un adaptador, y querrá usar la gema de alguna manera. ¡Buena suerte y diviértete con dm + sinatra!

+0

ejecuté gem install datamapper, y tengo sqlite3 y las gemas nessecary instaladas también. – GSto

Cuestiones relacionadas