нет, это не рубиновый способ, хотя вы не редактируете заказ после его создания.
Используйте следующие отношения в модели, я думаю, что это сработает. Нет проверки, хотя
User.rb
has_many :users
has_many :purchase, :class_name =>Order, :foreign_key=>'buyer_id'
has_many :sells, :class_name =>Order, :foreign_key=>'seller_id'
Product.rb
belongs_to :user
has_many :orders
Order.rb
belongs_to :buyer, :class_name =>User, :foreign_key=>'buyer_id'
belongs_to :seller, :class_name =>User, :foreign_key=>'seller_id'
belongs_to :product