我正在使用 sinatra + datamapper 构建一个小型 Web 应用程序。该应用程序基于一个 sqlite 数据库,该数据库在 table1 中包含大量记录,而在 table2 中没有任何记录。
我的目录结构如下:
total 32
-rw-r--r-- 1 atma staff 1895 31 Δεκ 21:35 application.rb
drwxr-xr-x 6 atma staff 204 31 Δεκ 21:10 archive/
-rw-r--r--@ 1 atma staff 82 23 Δεκ 23:59 config.ru
drwxr-xr-x 10 atma staff 340 31 Δεκ 21:38 lib/
drwxr-xr-x 4 atma staff 136 27 Δεκ 20:01 public/
drwxr-xr-x 6 atma staff 204 24 Δεκ 00:00 views/
ls -R lib
database.rb db_scheme.rb db_status.yaml fileutils.rb greek-dict.txt greekcase.rb rankmanager.rb wodb_el_v0.0.1.db
该数据库位于lib/wodb_el_v0.0.1.db
. 所有这些文件都包含类。
当我通过添加以下行来调用类在 rankmanager.rb 或 database.rb 中运行测试时:
Class TestClass
[code goes here]
end
x = TestClass.new
x.test_class_method
当我这样做时,一切都运行良好。当我删除执行测试的行(在其中创建对象并运行方法)并require_relative
在我的 . 中时application.rb
,它会擦除数据库而不是使用它。数据库由db_scheme.rb
加载的处理database.rb
。
我db_scheme.rb
是要点。
知道为什么 datamapper 会这样吗?
附言。我通过手动运行database.rb
创建数据库的方法将数据加载到数据库。
最好的问候,并提前感谢您的时间!