Ruby on rails 用于生产的内存中ActiveRecord

Ruby on rails 用于生产的内存中ActiveRecord,ruby-on-rails,ruby,activerecord,redmine,Ruby On Rails,Ruby,Activerecord,Redmine,我目前正在扩展RedMine1.4问题跟踪器的一些功能(它使用Rails2.3.14和Ruby1.8.7) 对于我当前的用例,我不太喜欢它的一点是,一些封装业务逻辑(角色、工作流)的类是基于数据库的,而不是基于代码的-如果没有我们的干预,我们的客户应该无法更改角色和工作流,虽然我可以用我想要的角色和工作流程预加载一组预烘焙的db数据,但我仍然认为这是一个解决方案,从可维护性的角度来看,这不是最好的 我想做的是这样的: class Person < SomeInMemoryActiveRec

我目前正在扩展RedMine1.4问题跟踪器的一些功能(它使用Rails2.3.14和Ruby1.8.7)

对于我当前的用例,我不太喜欢它的一点是,一些封装业务逻辑(角色、工作流)的类是基于数据库的,而不是基于代码的-如果没有我们的干预,我们的客户应该无法更改角色和工作流,虽然我可以用我想要的角色和工作流程预加载一组预烘焙的db数据,但我仍然认为这是一个解决方案,从可维护性的角度来看,这不是最好的

我想做的是这样的:

class Person < SomeInMemoryActiveRecordBaseClass
end

p = Person.new(:name => "Somebody)
p.save
class-Person“某人”)
p、 拯救
然后,我希望能够在任何Person对象和Person类上调用ActiveRecord方法,即使它背后没有真正的数据库

这似乎是一件愚蠢的事情(如果我从头开始创建项目,我不会使用基于AR的对象,但因为我是在已经存在的东西上构建的,所以这不是一个选项),但我需要在内存中处理的对象在很多地方都有使用,而且它们应该是基于AR的;在任何地方更改它们的用法都非常耗时

我见过一些项目,比如面向测试的,而不是面向生产的,并且它们并没有实现所有的方法。除此之外,AR接口似乎非常面向sql,我不知道让sql仿真层“正确”是否真的可行

是否有任何库可以适合我在内存数据库中创建功能齐全的activerecord的用例


(我已经考虑过使用不同的连接并利用inmemory sqlite db,但对我来说,这似乎有点过于工程化了)。

处理此问题的适当方法是将其放在合同中。“客户不得直接修改、更改或访问数据库中的数据,除非通过提供的GUI“或者是类似的东西。否则,他们会以某种方式破解它,如果他们破坏了东西,你就不会有任何退路;我可以完全禁用工作流管理,甚至从GUI中删除页面。我的问题是技术上的疑问。处理这个问题的适当方法是把它写进你的合同中。“客户不得直接修改、更改或访问数据库中的数据,除非通过提供的GUI”或类似内容。否则,他们会以某种方式破解它,如果他们破坏了东西,你就不会有任何退路;我可以完全禁用工作流管理,甚至从GUI中删除页面。我的怀疑是技术上的。