2011-11-18 2 views
0

こんにちは私はユーザーモデルを持っており、情報(名前、電子メール、バイオなど)のフィールドもあります。私はユーザーに「製品」を追加し、所有しているユーザー数を把握したい

私は、ユーザーが持つ商品を自分のアカウント情報に追加できるようにしたいと考えています。

それが唯一の製品の名前(テキストのみ)になりますが、私はまた私のようなものを表示することができるように、彼らは全体的に持っているどのように多くのカウントを保持することができるようにしたい:

ユーザーは(10製品を提供しています製品1、製品2など)

私はそのことをどうやって行うのか正確にはわかりません。前もって感謝します。

答えて

1

次のステップである:これは、特定の製品を許可しない方法、例えばユニークなUPCを別のユーザーが購入することはできますか?

「Large Lug Nut」のような製品は、いろいろな人が購入することができます。

だから、おそらくあなたが望むのは、基本的に結合テーブルであり、user_idとproduct_idを持つ購入テーブルです。 (!has_and_belongs_to_manyアソシエーション):のような関係を通じて:

User has_many :purchases 
User has_many :products, :though => :purchases 

Purchase belongs_to :user 
Purchase belongs_to :product 

Product has_many :purchases 
Product has_many :users, :through => :purchases 

、それはまた、HABTMを介して行うことができます厳密にはこれがあり

彼らあなたはuser.purchases.count

は、これは通常にhas_manyを介して行われます行うことができます大いに好意を失った。これは2つのフィールドのみを許可し、データベースに存在しない仮想テーブルです。
HABTMは、(実際には非常に一般的な)追加の属性を追加したいときには、has_manyに切り替える必要があります。これは、完全に開発されたアプリケーションの頭痛になる可能性があるためです。

+0

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

0

独自のテーブルを持つ製品モデルを作成します。

その後、has_many :products

は、あなたが行うことができないユーザーの内部@user.products.count

関連する問題