Cloudant でホストされている CouchDB データベースに対して基本的な Rails CRUD アプリを作成しようとしています。
パーシスタンス・レイヤーとしてcouch_potatoを使用しており、Cloudantデータベースに適切に接続しています。
私が抱えている問題は、モデルの名前と同じフィールドを追加しない限り、最初のモデルが CouchDB データベース内の既存のドキュメントを参照できないことです。ruby_class
私の単純なユーザーモデル:
class User
include CouchPotato::Persistence
property :id, :type => Fixnum
property :FullName, :type => String
view :all, :key => :FullName
end
サンプル CouchDB ドキュメント:
{
"_id": 123456,
"_rev": "4-b96f36763934ce7c469abbc6fa05aaf3",
"ORGID": 400638,
"MyOrgToken": "19fc342d50f9d8df1ecd5e5404f5e5f7",
"FullName": "Jane Doe",
"Phone": "555-555-5555",
"MemberNumber": 123456,
"Email": "jane@example.com",
"LoginPWHash": "14a3ccc0e6a50135ef391608e786f4e8"
}
ここでall
、Rails コンソールからビューを使用すると、結果が返されません。
1.9.2-p290 :002 > CouchPotato.database.view User.all
=> []
"ruby_class: User"
上記の CouchDB ドキュメントにフィールドと値を追加すると、コンソールに結果が返されます。
1.9.2-p290 :003 > CouchPotato.database.view User.all
=> [#<User _id: "123456", _rev: "4-b96f36763934ce7c469abbc6fa05aaf3", created_at: nil,
updated_at: nil, id: "123456", FullName: "Jane Doe">]
私は大量の顧客データを扱っており、ruby_class
すべてのドキュメントにフィールドを追加するスクリプトを書きたくありません (許可されていない可能性があります)。
ruby_class
フィールドを追加せずに、これらの既存の CouchDB ドキュメントをアプリに認識させるにはどうすればよいですか?
既存の CouchDB データベースを操作する方法を示した、couch_potato とcouchrest に関するドキュメントはあまり見つかりませんでした。ほとんどの例では、プロジェクトとデータベースをゼロから開始することを前提としています。
ありがとう、
/floatnspace