Примеры к ответу nbekseitov
Полиморфная связьclass Buyer < User
end
class Seller < User
end
class Order
belongs_to :buyer
belongs_to :seller
end
Внешний ключclass Order
belongs_to :buyer, foreign_key: :buyer_id, class_name: User
belongs_to :seller, foreign_key: :seller_id, class_name: User
end
Сложно сказать какой вариант правильный, зависит от задачи и структуры проекта. Второй вариант намного проще и довольно часто его достаточно. В первом варианте Вы с самого начала будете явно разделять логику продавца и покупателя между двумя классами, что положительно скажется на качестве кода в дальнейшем.