(Rails)其他无关实体之间的各种关联?

时间:2009-07-20 17:56:40

标签: ruby-on-rails associations

好的,我有点奇怪的情况(好像我的其他人都不是......)。基本上我有一个设置,其中有4个实体:

Sites -> Buildings -> Meters -> Values

然后我有第五个实体(图表)创建有关值的报告。我有一个请求,允许图表与任何这些项目在视觉上相关联,以便容纳最终用户。基本上每个图表一次只能与任何一个实体相关联。是否有质量“ACTS_AS”或疯狂和疯狂的东西,直观地允许我将图表与任何和所有实体相关联,而无需为每个新关联添加表格?

最佳。

1 个答案:

答案 0 :(得分:0)

也许你想要多态关联。

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

# ...