2012-02-20 7 views
6

starałem się dowiedzieć o ramach Sinatra rubinowym wykonując ten tutorial:rubin DataMapper nie załaduje

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

jednak po uruchomieniu gem install i pisania prosty serwer Sinatra w test.rb jak tak:

require 'sinatra' 
require 'datamapper' 

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

ale kiedy uruchomić polecenie ruby test.rb, pojawia się następujący błąd:

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

wydaje się, że nie może znaleźć klejnotu danych. jak mogę to naprawić?

EDIT: using Ruby 1.9.2

EDIT (znowu) (parital) Wyjście z 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

Dlaczego? Niepotrzebne w 1.9. – three

+0

tak, racja. Pisanie zabawnych komentarzy i usuwanie ich ponownie. Mój ostatni komentarz jest odpowiedzią na skasowany komentarz dotyczący wymagania rubygems ... – three

+0

@three: Mój błąd. Używam Ruby 1.8.7, więc pierwszą rzeczą jaką zauważyłem było to, że :) W każdym razie wydaje się, że moja odpowiedź jest teraz bezużyteczna, więc ją usuwam. –

Odpowiedz

27

Musisz require 'data_mapper', a nie datamapper.

Uwaga: istnieje klejnot datamapper, a także klejnot data_mapper, ale są to te same rzeczy, tylko różne nazwy. Musisz użyć nazwy data_mapper jako nazwy biblioteki w obu z nich.

O ile mogę powiedzieć datamapper jest prosta kopia 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

Tak, 'gem 'data_mapper'' pracował dla mnie. 'datamapper' nie jest konieczne. –

0

gem install datamapper w terminalu może pomóc :) Ale będzie Potrzebuję również bazy danych i adaptera, a będziesz chciał jakoś wykorzystać klejnot. Powodzenia i baw się dobrze z dm + sinatra!

+0

Uruchomiłem aplikację gem install datamapper, a także zainstalowałem sqlite3 i nessecary gems. – GSto