【发布时间】:2014-06-16 02:38:13
【问题描述】:
我有三个模型
- 用户
- 产品
- 订购
提交products 的user 和其他用户可以order 该产品。
现在我想实现另一个模型payment,我作为管理员向用户付费。
问题
我对我应该在user、order 和payment 之间创建什么样的关联感到困惑?
这是我目前拥有的:
在app/models/user.rb
class User < ActiveRecord::Base
has_many :products_selling, class_name: 'Product'
has_many :orders_received, class_name: 'Order', through: :products_selling, source: :orders
has_many :orders_made, class_name: 'Order'
has_many :products_ordering, class_name: 'Product', through: :orders_made, source: :product
has_one :payment, class_name: 'Payment', through: :orders_received
在app/models/order.rb
class Order < ActiveRecord::Base
belongs_to :product
belongs_to :buyer, class_name: 'User', foreign_key: :user_id
has_one :seller, class_name: 'User', through: :product
has_one :payment, through: :seller
在app/models/payment.rb
class Payment < ActiveRecord::Base
belongs_to :user
belongs_to :order
我不确定应该使用什么关联,我一直在阅读并且有使用polymorphic: :true 的示例,但它们都使用has_many,在我的情况下,一个订单对应一次付款。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 associations models