1

しばらくの間、私は CouchDB とのインターフェースとなる小さな Ruby ライブラリーの構築に取り組んできました。CouchDB は、HTTP インターフェースを備えたきちんとした小さな文書データベースです。主な機能は次のとおりです。

  • ドキュメント オブジェクトは美化されたハッシュです
  • JavaScript Map/Reduce 関数はネイティブ Ruby で記述され、S 式を使用して JavaScript に解析されます
  • 複数のCouchデータベースとインターフェースできます
  • Camping などのマイクロフレームワークとうまく統合する必要があります

私はこのようなことができるようにしたい:

@recipes = Recipes.all

ここで、「レシピ」は、ドキュメントに必要ないくつかのキーを定義するクラスです (クラス名は自動的に「種類」キーとして使用されます)。

しかし、困難な時期には、次のようなことをしたいと思うかもしれません。

@recipes.each do |recipe|
    recipe.cost = "too much!!"
    recipe.push!
end

さて、明らかにそのように「プッシュ」できるようにするには、データベースが..スコープ内のどこかにある必要があります..またはドキュメントオブジェクト自体がデータベースオブジェクトへの参照を保持する必要がありますか? ActiveRecord のような確立された ORM では、これはどのように行われますか?

そんなことはしたくありませんrecipe.push!(@couch_database_object)。しかし、スコープを汚染するクズにはなりたくありません。

何かアドバイス?

4

0 に答える 0