Я использую Ruby on Rails 3, и у меня есть класс List
и некоторые другие дочерние классы, которые "составляют" этот List
"необычным способом". То есть у меня есть модель List
со следующими атрибутами:
# LIST ATTRIBUTES
id : integer
kind_of : string
class_id : integer
kind_of
значениями могут быть "школа", "дом", ... и для каждого kind_of
у меня есть класс ListSchool
, ListHouse
, ... * class_id
относится к первичному ключу дочернего класса kind_of
"школа", "дом", ... (поэтому я могу иметь несколько равных значений для class_id
, но каждое из них относится к определенному классу ListSchool
, ListHouse
, .. в зависимости от значения kind_of
.
В нескольких словах Я хотел бы сослаться на уникальный класс (класс List
) , чтобы охватить все виды дочерних классов (ListSchool
, ListHouse
, ...) на основе значения атрибута родительского класса (kind_of
класса List
).
Как я могу написать код ассоциации, чтобы связать эти модели (возможно, используя :conditions => "kind_of = 'school'"
, :conditions => "kind_of = 'house'"
, ... в операторе ассоциации has_one
) ? Что вы посоветуете при таком подходе «деления классов»?