(Rails) Различные ассоциации между иначе не связанными сущностями? - PullRequest
0 голосов
/ 20 июля 2009

Хорошо, у меня немного странная ситуация (как будто никто из моих остальных не был ...). В основном у меня есть настройки, где есть 4 объекта:

Sites -> Buildings -> Meters -> Values

У меня тогда есть пятая сущность (Графики), которая создает отчеты о Ценностях. У меня есть просьба разрешить визуально связывать диаграммы с любым из этих элементов, чтобы они соответствовали конечным пользователям. По сути, каждый график может быть связан только с одним объектом одновременно. Есть ли какое-то качественное «ACTS_AS» или что-то дикое и безумное, которое интуитивно позволит мне связывать диаграммы с любыми сущностями без добавления таблицы для каждой новой ассоциации?

Best.

1 Ответ

0 голосов
/ 20 июля 2009

Возможно, вам нужны полиморфные ассоциации.

class Chart < ActiveRecord::Base
  # charts table has a chartable_id and a chartable_type column. Type is the 
  # class name of the associated chartable: Site, Building, etc.
  belongs_to :chartable, :polymorphic => true
end

class Site < ActiveRecord::Base
  has_one :chart, :as => :chartable
end

class Building < ActiveRecord::Base
  has_one :chart, :as => :chartable
end

# ...
...