Rails与自定义字段的关联

我迷失在Rails提供的所有关联选项中。Rails与自定义字段的关联

我有一张表Users。那些UsersProducts。这只是一个has_many :products的关系。

但是,我想为用户提供产品列表。他们会选择一些产品,并会增加一个价格。

所以基本上,我有

USER 1 -----> PRODUCT 1 ------> PRICE 1 <----. 

-----> PRODUCT 2 ------> PRICE 2 |

USER 2 -----> PRODUCT 1 ------> PRICE 3 <----¨

-----> PRODUCT 3 ------> PRICE 4

我应该创建三个表:UserProductPrice

如果用户想要定制他/她的产品更多的数量,需求等,该怎么办?然后,我应该创建下列表格代替:UserProductProductDetail

这样,userhas_many :productproducthas_many :product_detail

什么是Rails这样做的方式?

我失去了所有的has_manyhas_onehas_many :through

回答:

我会创建以下文件:

class User 

has_many :purchases

end

class Product

has_many :purchases

end

class Purchase

belongs_to :user

belongs_to :product

# mongoid syntax, if using ActiveRecord, use a migration

field :quantity, type: Integer, default: 0

field :price, type: Float, default: 0.0

end

user = User.new

apple = Product.new

tea = Product.new

chocolate = Product.new

user.purchases.build(product: apple, price: 2.99, quantity: 1)

user.purchases.build(product: tea, price: 5.99, quantity: 2)

user.purchases.build(product: chocolate, price: 3.99, quantity: 3)

FYI:这种UserProductPurchase关系类似于一个has_and_belongs_to_many。当使用has_and_belongs_to_many时,ra​​ils只是简单地链接上面的类。在这里,我们正在自己做,以便使用quantityprice定制Purchase类。

以上是 Rails与自定义字段的关联 的全部内容, 来源链接: utcz.com/qa/257973.html

回到顶部