2010-12-07 8 views
1

複数のカテゴリに属する​​書籍モデルがあるとします。カテゴリはあらかじめ定義されていますが、ほとんどの場合、デフォルトのもので十分ですが、ユーザーが自分のものを追加できるようにすることがあります。レールに複数の値を持つ属性:ブール値、文字列、シリアライズまたはhbtm?

あなたに合わせて対処する最もよい方法は何ですか?

a)カテゴリモデルと多対多の関係?しかし、実際のデフォルトカテゴリではほとんどの場合、十分な余裕がないのでしょうか? b)各デフォルトカテゴリのブーリアンとユーザ入力カテゴリの余分な文字列 C)単なる文字列とシリアル化の使用?しかし、デフォルト選択のためにチェックボックス入力を使用するのはちょっと難しいかもしれません。 d)あなたの他の提案...

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

おかげ

答えて

2

おそらくHABTMを使用したいと思います。さまざまなカテゴリに関するあらゆる種類の情報を収集したいと思っているのであれば、それは残酷ではありません。作成された日付など。また、ブックモデル内のスコープについて心配することなく、特定のカテゴリのすべてのブックを簡単に取得することもできます。

また、道路を進むと、カテゴリに他のオブジェクトを追加できます。オーバーヘッドはあまりありません。設定するのは非常に簡単なので、IMHOの価値があります。

HABTMのチェックボックスの実装については、HABTM Checkboxes railscastをご覧ください。 HABTMhas_many :throughの相違点については、実際にTwo Many-to-Manyのレールキャストをお勧めします。

+0

カテゴリに関する情報を収集する場合は、:has_many:through =>関係として設定する必要があります。 HABTMは、このような理由から、賛成ではなくなっています。 – brycemcd

+0

私は各カテゴリのオブジェクトそのものを意味していました。これは、カテゴリと本の間の結合に関する情報をトラッキングするためには本当に当てはまります。それらのrailscastsがHABTM ...唯一の有効な使用を示すように思えるいくつかのカテゴリの実装。 –

+0

その場合の公演はどうですか? hbtmを使用するには、後でいくつかの熱心な読み込みやキャッシングを実装する必要がありますが、他のソリューションより早く実装する必要があります。特にカテゴリのような他の属性がいくつかある場合は特にそうです。それを信じるのは間違っていますか? – Nycen

関連する問題