2011-08-10 22 views
1

RailsやDjangoのような従来のWebフレームワークでは、スキーマに対応するHTMLフォームを生成する方法があります。これはデータベースのTABLE 。CouchApp(または任意のJSONドキュメント)のHTMLフォームを生成する方法

どのようにCouchDBで動作しますか? (テーブルとスキーマはありません)

カスタムフォームを手作業で作成し、それらを "モデル/スキーマ"として機能させますか? "モデル"はjavascriptで定義されていますか?自動生成されたフォームは許可されていますか? 「モデル」など、JSONドキュメントと同様の定義がありますか?

また、従来のHTMLフォームでは、「キー」ごとに1つの値を持つ単一の「レコード」を処理します。 JSONドキュメントは、1つのキーまたは別のネストされたドキュメントの下に値のリストを持つことができます。 - 従来のHTMLフォームはそれを処理しません! JSONドキュメント(既知の "doctype"のドキュメントでも)は、 "余分な"(定義されていない)フィールドを持つ可能性があります。フィールドが欠落している可能性があります。 。 これらのすべては、従来のHTMLフォームでは処理されません。

従来のHTMLフォームと比べて、ユーザーがJSONドキュメントとやりとりするためのより良い方法はありますか?

答えて

1

CouchDBはスキーマのないjsonを保持していますが、プレゼンテーション側でjsonスキーマを定義できます。そして、このjsonスキーマをinputExにフィードして、フォームを作成することができます。

はこちらをご覧ください: http://neyric.github.com/inputex/examples/json-schema.html

InputExは非常に柔軟性があり、配列、オブジェクト、およびプロパティのための特別なエディタを処理します。 jsonスキーマ標準がよく定義されていないことを理解してください。あなたがCRUD操作を行うためにそれを使っているだけなら、うまくいくはずです。

あなたのフォームが進化し、スキーマが変更された場合、couchdbには関係ありません。しかし、ユーザーにデータを新しいスキーマに移行する方法を提供する必要があるかもしれません。

+0

Kansoは、CouchDBの持つ幻想的です。それは魅力的なアプローチを提供します。考慮すべきことの1つは、「実行時」と「コンパイル時」の間にスキーマを変更できる必要がある場合です。 inputexアプローチを使用すると、ユーザーはスキーマを定義できます。調査/アンケート構築アプリのように。 Kansoは、スキーマがデベロッパーコントロールに含まれ、アプリと統合されているときにうまく機能します。 Caolanはこれを確認しなければならないかもしれません。 –

+0

はい、それは正しいライアンです。ユーザがスキーマを動的に変更することを期待している場合、Kansoのタイプシステムは最適なソリューションではありません。しかし、開発者がスキーマを書いているのは素晴らしいです;) – Caolan

1

Kanso CouchAppフレームワークCouchDBのためのツールを生成する最も包括的なスキーマやフォームが用意されていますhttp://kansojs.org

例を使用するためのチュートリアルを見てみましょう。スキーマ定義はCouchDBで動作するようにグループから作成され、埋め込みオブジェクトや他の複雑なJSONのような構造を可能にするため、非常に柔軟な形式です(JSONスキーマよりもはるかに優れています)。

あなたはまた、自動的にスキーマ定義からフォームを生成、またはカスタムフィールド、ウィジェット、バリ、権限でこれらを拡張することができ、など

関連する問題