2011-07-02 99 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