나는 세 가지 모델두 모델 또는 다형성 연관에 속한 모델입니까?
- 사용자
- 제품
product
의 다른 사용자 수order
해당 제품을 제출user
- 주문
있습니다.
이제 관리자로 내가 지불하는 다른 모델 payment
을 구현하고 싶습니다.
질문 내가 user
, order
및 payment
사이 만들어야 협회의 종류에 대해 혼란 스러워요?
이
내가 현재 가지고있는 것입니다 :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/user.rb
과 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
에서 내가 사용되어야 하는지를 협회 확실하지 않다 , 나는 r이었다. 예를 들어 polymorphic: :true
을 사용하는 예제가 있지만 모두 has_many
인데, 내 경우에는 하나의 주문이 하나의 지불에 해당합니다. 본질적 것입니다, 당신은 single
테이블에 multiple
테이블을 연결하고 싶어한다면
:
정답입니다. 'polymorphic' 연관성이이 시나리오에 적합하지 않은 것처럼 보입니다. 또한, 나는 바른 길 위에 있었던 것처럼 보인다. 질문을 명확하게하기 위해 (사용자가 답변을 변경하면 확실하지 않음), 사용자는 다른 사용자가 게시 한 제품을 구매합니다. 사용자가 주문하면 관리자의 계정으로 돈이 전송 된 다음이 관리자가 모든 판매자 (사용자)에게 돈을 송금합니다. 이 말을 듣고 'app/models/payment.rb'에 'belongs_to : user'가 필요합니다. 항상 판매자에게 지불하는 관리자가 하나이기 때문입니다. – Amey