いくつかのRailsモデルを構造化して、さまざまな数の入力フィールドをサポートできるようにするにはどうすればよいでしょうか。さまざまなフィールド数を持つオブジェクトをサポートするためのモデル構造体
私は、テーマモデルに属している記事モデルを持っているとしましょう。私はいくつのテーマを持っていたいと思いますし、それぞれのテーマがそれ自身のフィールドを定義できるようにしたいと思います。例えば、theme_1はprimary_colourを定義し、theme_2はcolour_1、colour_2、fontを定義します。
テーマの選択は、記事がテーマを適切に適用できるようにするためにどのような追加情報を収集する必要があるかを決定します。
article_1がtheme_1を使用している場合は、article_1を表示するたびにprimary_color値を保存する必要があります。 article_2でもtheme_1を使用している場合は、別のprimary_color値を定義できます。同様に、article_3がtheme_2を使用する場合は、color_1、color_2、およびfontを保存する必要があります。
テーマは必須フィールドを定義します。必要な値は記事固有のものです。
は、これまでのところ私は、次が、イム自信がないの最善の解決策が出ている:
class Article < ActiveRecord::Base
belongs_to :theme
has_many :article_details
end
class Theme < ActiveRecord::Base
has_many :fields
end
class ArticleDetail < ActiveRecord::Base
belongs_to :field
belongs_to :listing
end
記事は、テーマを持っていると私は私がのために移入するために必要なものフィールドを知っているので、テーマは、フィールドがあります記事。記事には、値を格納するarticle_detailsと、その値が使用するフィールドへの参照もあります。
私は説明を明確にしたいと思います。どんなフィードバックもありがとうございます。
おかげ
これには多くの方法があります。最良の選択は、主に次の内容に依存します: 1.あなたが想像しているテーマの数は です。2.あなたのテーマにアクセスする方法や更新する方法(具体的には、青色の原色を持つ記事をすべて検索するそのテーマが何であるか把握する必要がありますか?) – Julie
@Julie - 議論のために、5-15テーマを考えましょうが、テーマの柔軟性を制限しないように分割したいと考えました。私は原色の青色の記事をすべて見つけようとは考えていません。テーマを簡単に「適用」できるようにしたい。したがって、article_1にprimary_colorの青が付いている場合は、primary_color変数を指定したいと思うtheme_1のCSSがあるかもしれません。 – adampetrie