Rails 3.2: (activerecord) Как мне смоделировать это? - PullRequest
0 голосов
/ 02 февраля 2012

enter image description here

У меня есть три модели: RequestForQuote, CounterQuote < RequestForQuote [inherit RequestForQuote] и Proposition.

A request_for_quote has_many propositions и банка propositionдействовать как дерево с counter_quote.

У меня уже есть:

class RequestForQuote < ActiveRecord::Base
  has_many :propositions, :dependent => :destroy
end

class CounterQuote < RequestForQuote

end

class Proposition < ActiveRecord::Base
  belongs_to :request_for_quote
end

Как я могу его смоделировать?Благодаря.

1 Ответ

0 голосов
/ 02 февраля 2012

Если предложение может иметь только один 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...