Присоединение к отношениям с Ruby Object Mapper

У меня есть небольшое приложение "просто для удовольствия", которое я перевожу с Active Record и SQLite на Ruby Object Mapper. В основном это шанс для меня изучить, как шаблон отображения данных влияет на мой код.

У меня есть модель курса, модель игры и модель оценки. При расчете записей курса мне нужно получить объект курса вместе со всеми связанными с ним играми и все оценки для каждой из этих игр.

Я нашел пример создания объединенного отношения, но потом я не смог найти никаких примеров того, как написать сопоставитель для этого отношения, поэтому я не могу на самом деле получить эти данные обратно.

Моя схема ПЗУ выглядит так:

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?

1 ответ

Решение

В настоящее время ПЗУ не поддерживает отображение объединенных отношений OOTB. В аксиоме появилась новая функция под названием nest/unnest, которую ROM будет использовать для сопоставления соединенных отношений.

Прямо сейчас это потребует большого количества хакерских атак, поэтому мы решили отложить эту функцию и дождаться появления / удаления гнезда аксиомы.

Другие вопросы по тегам