1

私は現在、アクティブレコードを使用して製品を保存およびクエリするレールアプリを持っています。

各製品にはカテゴリとサブカテゴリがあり、各サブカテゴリは、アプリケーション内で作成できる複数のフィールドによって定義されます。これから、ユーザーが特定の製品を入力したい場合、関連するフォーム フィールドが表示されます。

これは非常に複雑になり、mongodb と mongomapper について聞いて以来、mongomapper を使用して最初から作成したと思います!!!

問題は、mongodb でこのアプリをモデル化するための最良の方法を知りたいということです。

私は、共通のフィールドを持つ製品モデルを持ち、次に異なるフィールドを持つ製品モデルを継承するカテゴリ モデルを持つことを考えていました。

この音は正しいですか?

問題は、ユーザーがアプリケーション内から独自のカテゴリとフィールドを作成できるようにすることです。たとえば、ユーザーが速度やドアの数などのフィールドを含む車のカテゴリを作成する場合、これを行うにはどうすればよいですか。次に、これらのフィールドを使用して、将来の車を入力するためのフォームを作成できる必要があります。

誰かが私を助けることができるアイデア、ポインタ、または例は素晴らしいでしょう.

事前にたくさんありがとうリック

4

1 に答える 1

1

OK、私は Ruby/Mongomapper の専門家ではないので、これを「モデル」にマップすることはできません。ただし、これを Mongo の観点から見ると、Mongo でのデータの表示方法は次のようになります。

コレクション: カテゴリー

{"_id" : "car"}
{"_id" : "vintage_car", "parent" : "car", "fields" : ["year" : "integer", "original_parts" : "boolean", "upgrades" : "text"] }

コレクション:製品

{"_id" : "1234", "name" : "Model-T", "category" : "car", "sub-category" : "vintage_car", "values" : ["year" : 1942, "original_parts" : false, "upgrades : "XM Radio"] }

ここにあるものはとてもシンプルです。すべてのカテゴリとサブカテゴリを含む 1 つのコレクションがあります。オブジェクトが「サブカテゴリ」の場合、「親」フィールドが設定されます。「親」フィールドがない場合、そのオブジェクトは「カテゴリ」です。

各サブカテゴリには「fields」要素があります。「フィールド」は実際にはペアの配列です。これにより、レンダリングが容易になります。誰かがビンテージ カーに乗り込んだ場合、「ビンテージ カー」カテゴリを検索し、「フィールド」をループして適切な入力ボックスをレンダリングします。「integer」や「boolean」などの単純なものを使用しましたが、実際にはここに好きなものを入れることができます (「datepicker」、「checkbox」など)。それはすべてあなた次第です。

現在、製品自体は基本的にカテゴリとサブカテゴリの両方への参照を保存しています。また、入力したすべてのフィールドの値も保存されます。

したがって、製品には必要なすべてのデータが含まれているため、各製品のレンダリングが非常に簡単になります。製品と適切なサブカテゴリをロードすると、ページを動的にレンダリングするために必要なすべての情報が得られます。

編集

コメントへの返信として、カテゴリの「フィールド」は測定単位で構築できます。

..."fields" : [{"length","meters","float"},{"weight","kg","float"},...]

于 2010-06-24T03:52:33.063 に答える