2

Active Record と SQLite から Ruby Object Mapper に移行している"ちょっとした" Rails アプリがあります。これは主に、データ マッパー パターンがコードに与える影響を調べるチャンスです。

Course モデル、Game モデル、Score モデルがあります。コース レコードを計算するときは、コース オブジェクトとそれに関連付けられているすべてのゲーム、およびそれらの各ゲームのすべてのスコアを取得する必要があります。

結合された関係を作成する例を見つけましたが、その関係のマッパーを作成する方法の例を見つけることができなかったため、実際にそのデータを取り戻すことができません。

私の ROM スキーマは次のようになります。

base_relation :courses do
  repository :main
  attribute :id,          Integer
  attribute :name,        String
  attribute :created_at,  Time
  attribute :updated_at,  Time
  key :id
end

base_relation :games do
  repository :main
  attribute :id,          Integer
  attribute :course_id,   Integer
  attribute :played_at,   Time
  attribute :created_at,  Time
  attribute :updated_at,  Time
  key :id
  key :course_id
end

そして、関連するすべてのゲームで特定のコースを取得できるクエリを実行したいと考えています。何かのようなもの:

env[:courses].restrict(id: 1).join(env[:games]).one

しかし、結合を指定するための正しい構文を見つけることができませんでした。公理がメモリ内の結合をサポートしていることだけは知っています。

Ruby Object Mapper から結合されたデータで読み取りと書き込みを行う良い例を知っている人はいますか?

4

1 に答える 1