有一段时间,我一直致力于构建一个小的 Ruby 库来与 CouchDB 接口,这是一个带有 HTTP 接口的简洁的小型文档数据库。主要特点是:
- 文档对象是美化的哈希
- JavaScript Map/Reduce 函数是用原生 Ruby 编写的,并使用 S 表达式解析为 JavaScript
- 您可以与多个 Couch 数据库交互
- 它应该与 Camping 等微框架很好地集成
我希望能够做这样的事情:
@recipes = Recipes.all
其中“Recipes”是定义文档具有的几个必需键的类(类名自动用作“种类”键)。
但在艰难时期,我可能想做这样的事情:
@recipes.each do |recipe|
recipe.cost = "too much!!"
recipe.push!
end
现在,显然为了能够像那样“推动”,我要么需要数据库在范围内的某个地方......要么让文档对象本身持有对数据库对象的引用?这在 ActiveRecord 等成熟的 ORM 中是如何完成的?
我不想做,你知道的recipe.push!(@couch_database_object)
,或者别的什么,因为那太恶心了!但我不想成为一些污染范围的卑鄙小人。
有什么建议吗?