您好我有一个用户模型,我还有一些字段用于他们的信息(姓名,电子邮件,生物等)。
我希望能够让用户将他们拥有的产品添加到他们的帐户信息中。
它只是产品的名称(仅限文本),但我也希望能够计算它们总数的数量,以便我可以显示如下内容:
用户有10个产品(产品1,产品2等)
我不确切地知道如何做到这一点。提前谢谢。
答案 0 :(得分:1)
下一步是:这如何允许给定产品,例如不同用户购买的独特UPC?
毕竟,各种人都可以买到“大把螺母”等产品。
所以你可能想要的是一个购买表,它基本上是一个连接表,并且有user_id和product_id。
他们可以user.purchases.count
这通常通过has_many:through关系完成,如:
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(has_and_belongs_to_many!)来完成,但这在很大程度上已经失宠了。它只允许两个字段,它是数据库中不存在的虚拟表 HABTM主要是不受欢迎的,因为只要你想添加一个额外的属性(在现实世界中很常见),你需要切换到has_many,:通过它可以在完全开发的应用程序中头疼。
答案 1 :(得分:0)
使用自己的表制作产品型号。
然后在用户内has_many :products
然后你可以@user.products.count