2011-07-02 105 views
-1

我有一個應用程序,它有兩個模型產品和購買。協會使用has_many:通過問題

產品包含在我的系統和購買定義由用戶購買的所有商品,所有商品列表...

現在我有一個特別的CURRENT_USER誰可以查看產品和購買產品和汶河點擊購買按鈕,他能夠看到他所做的所有采購。我已經做了關聯has_many :through和已經創建了鏈接在一起的購買和產品表的新型號命名purchased_products ..

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 

現在我沒有得到我如何找出哪些用戶已購買該產品,並展示他所有的購買?

此外,我在哪裏指定代碼來找出當前用戶的所有購買?

回答

0

你可以用兩個非常簡單的語句訪問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協會,您可以像訪問產品 - >採購和採購 - >產品一樣訪問它們。

您應該圍繞谷歌絕對尋找這樣的事情作爲ActiveRecord的關聯是非常有據可查,http://edgeguides.rubyonrails.org/association_basics.html

+0

這是我的用戶和產品和購買類用戶 Bebo

0

如果一個User的has_many產品和購買,那麼你會引用它們,很可能在你users_controller表演動作:

@current_user = User.find(params[:id]) 
@products  = @current_user.products 
@purchases = @current_user.purchases