Rails与自定义字段的关联
我迷失在Rails提供的所有关联选项中。Rails与自定义字段的关联
我有一张表Users
。那些Users
有Products
。这只是一个has_many :products
的关系。
但是,我想为用户提供产品列表。他们会选择一些产品,并会增加一个价格。
所以基本上,我有
USER 1 -----> PRODUCT 1 ------> PRICE 1 <----. -----> PRODUCT 2 ------> PRICE 2 |
USER 2 -----> PRODUCT 1 ------> PRICE 3 <----¨
-----> PRODUCT 3 ------> PRICE 4
我应该创建三个表:User
,Product
和Price
?
如果用户想要定制他/她的产品更多的数量,需求等,该怎么办?然后,我应该创建下列表格代替:User
,Product
和ProductDetail
这样,user
has_many :product
和product
has_many :product_detail
。
什么是Rails这样做的方式?
我失去了所有的has_many
,has_one
,has_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:这种User
,Product
和Purchase
关系类似于一个has_and_belongs_to_many
。当使用has_and_belongs_to_many
时,rails只是简单地链接上面的类。在这里,我们正在自己做,以便使用quantity
和price
定制Purchase
类。
以上是 Rails与自定义字段的关联 的全部内容, 来源链接: utcz.com/qa/257973.html