Если предложение может иметь только один CounterQuote, вы можете использовать это:
class RequestForQuote < ActiveRecord::Base
has_many :propositions, :dependent => :destroy
end
class CounterQuote < RequestForQuote
belongs_to :proposition
end
class Proposition < ActiveRecord::Base
belongs_to :request_for_quote
has_one :counter_quote
end
CounterQuote будет иметь атрибуты proposition
и propositions
, что не очень понятно, рассмотрим их переименование.
Если CounterQuote может иметь много предложений, я согласен с Tass, вы можете объединить CounterQuote и RequestForQuote. Если вам нужна древовидная структура (с родителями и потомками), посмотрите на существующие драгоценные камни как awesome_nested_set .