我从Active Record和SQLite迁移到Ruby Object Mapper,有一个“只是为了好玩”的Rails应用程序。对于我来说,这主要是一次探索数据映射器模式影响我的代码的方式。
我有一个课程模型,一个游戏模型和一个得分模型。在计算课程记录时,我需要获取一个课程对象及其所有相关的游戏以及每个游戏的所有得分。
我找到了创建连接关系的示例,但是随后似乎找不到如何为该关系编写映射器的示例,因此我无法真正获取该数据。
我的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中读取和写入联接数据的好例子吗?
当前ROM不支持映射连接关系OOTB。公理中出现了一个名为nest / unnest的新功能,ROM将以一种明智的方式使用它来映射连接关系。
现在,这将需要大量的黑客工具,这就是为什么我们决定推迟该功能并等待公理的嵌套/不必要的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句