Ruby on rails Rails与自定义字段的关联

Ruby on rails Rails与自定义字段的关联,ruby-on-rails,ruby-on-rails-3,associations,Ruby On Rails,Ruby On Rails 3,Associations,我迷失在Rails提供的所有关联选项中 我有一个供用户使用的表。那些用户拥有产品。这仅仅是一种有很多:产品的关系 但是,我想向用户提供一个产品列表。他们会选择一系列的产品,并为其定价 所以基本上,我有 USER 1 -----> PRODUCT 1 ------> PRICE 1 <----. -----> PRODUCT 2 ------> PRICE 2 | USER 2 -----> PRODUCT 1 ----

我迷失在Rails提供的所有关联选项中

我有一个供
用户使用的表
。那些
用户
拥有
产品
。这仅仅是一种有很多:产品的关系

但是,我想向用户提供一个产品列表。他们会选择一系列的产品,并为其定价

所以基本上,我有

USER 1 ----->  PRODUCT 1 ------> PRICE 1    <----.
       ----->  PRODUCT 2 ------> PRICE 2         |
USER 2 ----->  PRODUCT 1 ------> PRICE 3    <----¨
       ----->  PRODUCT 3 ------> PRICE 4
USER 1----->PRODUCT 1------>PRICE 1 PRODUCT 2------>PRICE 2|
用户2------->产品1------->价格3产品3------->价格4
我应该创建三个表:
用户
产品
价格

如果用户想根据数量、需求等定制更多的产品,该怎么办。?那么我应该创建以下表格吗:
User
Product
ProductDetail

这样一来,
用户
拥有多个:产品
,而
产品
拥有多个:产品细节

Rails是如何做到这一点的


我对所有的
有很多
有一个
有很多:通过
,等等感到迷茫。

我将创建以下内容:

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)

仅供参考:
用户
产品
购买
之间的这种关系类似于
拥有且属于许多
。当使用
has\u和\u belient\u to \u many
时,rails只需像上面那样链接这些类。在这里,我们自己做,以便使用
数量
价格
定制
购买
类,我将创建以下内容:

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)

仅供参考:
用户
产品
购买
之间的这种关系类似于
拥有且属于许多
。当使用
has\u和\u belient\u to \u many
时,rails只需像上面那样链接这些类。在这里,我们自己做这件事是为了用
数量和
价格定制
购买

,谢谢您的详细回答。很容易实施。很高兴它帮助了你,请考虑接受这个答案。享受Rails带来的乐趣。感谢您提供的详细答案。很容易实施。很高兴它帮助了你,请考虑接受这个答案。享受Rails带来的乐趣。