我有一个实现我的整个业务逻辑的gem,因此我可以在不同的应用程序中使用它。现在,其中一个应用程序需要持久性。如何轻松扩展现有的Ruby模型以支持持久性?我应该修补它们吗?
为了给你一些背景知识,我的模型对象通常只是用XML或JSON文件构建的,但现在我需要将它们存储在关系数据库中。
这个问题有共同的模式吗?我应该编写支持持久性的新模型对象,并在遗留对象和新模型对象之间进行映射,还是应该将现有对象扩展为可在数据库中表示?
非常欢迎任何提示,提示和链接。
答案 0 :(得分:1)
我不确定我完全理解你的问题。但是,DataMapper库可以非常容易地用于在事实之后向已存在的对象模型添加持久性,原因有两个:
现在,无论您是否设法保持持久性方面完全正交,例如在一个单独的宝石中,这是另一个问题。您可以确实将它保存在一个单独的库中,该库只打开所有模型类和include DataMapper::Resource
并声明所有属性。这将使您仍然可以在没有持久性的情况下部署对象模型gem,但持久性gem显然会与对象模型gem紧密耦合。