2011-07-02 15 views
-1

私は2つのモデルの製品と購入を持つアプリケーションを持っています。has_manyを使用した関連付け:問題

製品は、私のシステム内のすべての製品のリストが含まれており、購入がユーザーによって行われたすべての購入を定義...

は、今私は、製品を見ると、彼はボタンを買うヒット商品と温家宝を購入することができ、特定のCURRENT_USERを持っています彼は彼が作ったすべての買い物を見ることができた。私は今、私は、製品やショーどれを購入したユーザーI OUT見つけるのですか届かない

...
class Product < ActiveRecord::Base 
    has_many :purchased_products 
    has_many :purchases, :through => :purchase_products 
end 

class Purchase < ActiveRecord::Base 
    has_many :products, :through => :purchased_products 
    has_many :purchased_products 
end 

class PurchasedProducts < ActiveRecord::Base 
    belongs_to :purchases 
    belongs_to :products 
end 

を連想has_many :throughをしたし、一緒に購入し、製品テーブルをリンクpurchased_productsという名前の新しいモデルを作成しました彼のすべての買い物?

また、現在のユーザーのすべての購入を見つけるコードを指定しますか?

答えて

0

あなたがそうのように2つの非常に簡単な文でProductPurchase sおよびその逆にアクセスすることができます。

some_product = Product.find(some_product_id_or_find_query).purchases 
some_purchases = Purchase.find(some_purchase_id_or_find_query).products 

あなたがUserと任意のPurchaseとの間の関係を定義していない、私はこれが起こっていると仮定します別のHABTM協会になるため、Product-> Purchases and Purchases-> Productのようにアクセスできます。

のActiveRecordのアソシエーションが非常によく文書化されているとしてあなたは間違いなく、この種のものは、Googleの周りに検索する必要があり

http://edgeguides.rubyonrails.org/association_basics.html

+0

これは、ユーザーや製品と購入のクラスのユーザー Bebo

0

User has_manyの製品と購入した場合は、おそらくあなたusers_controller showアクションで、同様にそれらを参照します:製品 has_manyの::購入 エンド

@current_user = User.find(params[:id]) 
@products  = @current_user.products 
@purchases = @current_user.purchases 
関連する問題