次のステップである:これは、特定の製品を許可しない方法、例えばユニークな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に切り替える必要があります。これは、完全に開発されたアプリケーションの頭痛になる可能性があるためです。
ありがとうございました! !! – ChrisBedoya