sinatra+datamapperを使用して小さなWebアプリを構築しています。このアプリは、table1に多数のレコードが含まれ、table2には何も含まれていないsqliteデータベースに基づいています。
私のdir構造は次のとおりです。
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がそのように動作する理由はありますか?
ps。データベースを作成するメソッドを手動で実行して、データベースにデータをロードdatabase.rb
します。
よろしくお願いいたします。よろしくお願いいたします。