ruby datamapper не будет загружаться - PullRequest
6 голосов
/ 21 февраля 2012

Я пытался узнать о фреймворке Sinatra ruby, следуя этому руководству:

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

однако после запуска установки gem и написания простого сервера sinatra в test.rbнапример так:

require 'sinatra'
require 'datamapper'

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

но когда я запускаю команду ruby 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 datamapper_test.rb:2:in `<main>'
glenn@ubuntu:~/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>'

кажется, что он не может найти гем datamapper.как я могу это исправить?

РЕДАКТИРОВАТЬ : используя ruby ​​1.9.2

РЕДАКТИРОВАТЬ (снова) : (частичное) вывод из 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)

Ответы [ 2 ]

27 голосов
/ 21 февраля 2012

Вам нужно require 'data_mapper', а не datamapper.

Обратите внимание, что есть драгоценный камень datamapper и драгоценный камень data_mapper, но это одно и то же, просто разные имена. Вам нужно использовать data_mapper в качестве имени библиотеки в обоих из них.

Насколько я могу судить, datamapper является прямой копией 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 голосов
/ 21 февраля 2012

gem install datamapper в вашем терминале может помочь :) Но вам также понадобятся база данных и адаптер, и вы захотите как-то использовать гем.Удачи и веселья с дм + синатрой!

...