Как в одной таблице сделать два внешних ключа?
Полиморфные связи или foreign_key
Примеры к ответу 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
Сложно сказать какой вариант правильный, зависит от задачи и структуры проекта. Второй вариант намного проще и довольно часто его достаточно. В первом варианте Вы с самого начала будете явно разделять логику продавца и покупателя между двумя классами, что положительно скажется на качестве кода в дальнейшем.