我有一个应用程序,它有两个型号的产品和购买。
产品包含我系统中所有产品的列表,并且购买定义了用户进行的所有购买......
现在我有一个特定的current_user,可以查看产品和购买产品,并且他点击购买按钮,他可以看到他所做的所有购买。我创建了一个关联has_many :through
并创建了一个名为purchase_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 :(得分:0)
您可以使用两个非常简单的语句来访问Product
的{{1}} s,反之亦然:
Purchase
您尚未定义some_product = Product.find(some_product_id_or_find_query).purchases
some_purchases = Purchase.find(some_purchase_id_or_find_query).products
与任何User
之间的关系,我认为这将是另一个HABTM关联,因此您可以像使用Product-&gt;购买一样访问它们和购买 - &gt;产品。
你绝对应该在谷歌周围搜索这类东西,因为ActiveRecord关联有很好的记录,http://edgeguides.rubyonrails.org/association_basics.html
答案 1 :(得分:0)
如果a User
has_many产品和购买,那么您可能会像在users_controller
显示操作中那样引用它们:
@current_user = User.find(params[:id])
@products = @current_user.products
@purchases = @current_user.purchases