2011-07-16 14 views
1

私のWebアプリケーションのユーザーがカスタムフォームを作成できるようにする必要があります。Ruby on Railsのカスタムフィールド/フォーム

ユーザーはこのような何かを作成することをお勧めします:年齢、性別、身長を、ANSWER1、ANSWER2、...、10

別の答えのようなものをお勧めします:、靴のサイズ、重量、ANSWER1、ANSWER2を...、答え6.

それぞれに複数のエントリ(おそらく1000+)がありますが、それらはリレーショナルデータベース、おそらくMySQLに格納する必要があります。

これを実装する最良の方法は何ですか?これらのフォームのそれぞれについて、データベースにテーブルを作成し、その名前を保存して後で参照できるようにしますか?

ありがとうございました。

class Form < ActiveRecord::Base 
    has_many :form_fields 
    has_many :form_values 
end 

class FormField < ActiveRecord::Base 
    belongs_to :form 
    has_many :form_values 
end 

class FormValue < ActiveRecord::Base 
    belongs_to :form_field 
    belongs_to :form 
end 

私はそれを行うには、他の方法があると確信している:

+0

[Rails 3:User Created custom forms?]の複製が可能です(http://stackoverflow.com/questions/4942164/rails-3-user-created-custom-forms) –

答えて

2

リレーショナルデータベースを使用している場合は、ここではこれを実現する一つの方法です。ドキュメント指向データベースは、他の選択肢を提供することができる。

+0

返信いただきありがとうございます。はい、私はリレーショナルデータベースについて話しています。これは私の考え方のもう一つの方法ですが、この方法では3つの問題があります。1)フィールドの種類はどうですか? 2)これは実際に効率的ですか? 3)クエリはどうですか? –

+0

フィールドタイプは、静的に定義することも、 'FormFieldType'モデルを使って定義することもできます(おそらく、モデルにいくつかの検証マジックを適用できます)。効率については、これがどれくらい重く使用されているか、インデックスの構造に依存していると思います。質問すると、あなたが達成したいと思っているアイデアを教えてください。私は試してみて、例を挙げます。 – Brian

+0

平均、メイダン、モード、相関などの統計的なものです。 –