本文是小编为大家收集整理的关于ruby datamapper无法加载的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。
问题描述
我试图通过遵循本教程来了解Sinatra Ruby框架:
http://net.tut.tutsplus .
但是,在运行GEM安装并在test.rb中写下简单的Sinatra服务器之后.
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 Gem.我该如何解决?
编辑:使用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)
推荐答案
您需要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'
其他推荐答案
gem install datamapper在您的终端中可能会有所帮助:) 但是,您还需要一个数据库和一个适配器,并且您需要以某种方式使用宝石.祝您好运,并与DM + Sinatra一起玩!
问题描述
I was trying to learn about the Sinatra ruby framework by following this tutorial:
http://net.tutsplus.com/tutorials/ruby/singing-with-sinatra-the-recall-app-2/
however, after running the gem install and writing a simple sinatra server in test.rb like so:
require 'sinatra' require 'datamapper' get '/' do "Hello, World!" end
but when I run the command ruby test.rb, I get the following 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>' 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>'
it seems as though it cannot find the datamapper gem. how can I fix this?
EDIT: using ruby 1.9.2
EDIT (again): (parital) output from 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)
推荐答案
You need to require 'data_mapper', not datamapper.
Note there is a datamapper gem as well as a data_mapper gem, but they are the same thing, just different names. You need use data_mapper as the library name in both of them.
As far as I can tell datamapper is a straight copy of 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'
其他推荐答案
gem install datamapper in your terminal might help :) But you will also need a database and an adapter and you will want to use the gem somehow. Good luck and have fun with dm + sinatra!