2012-05-10 4 views
0

간단한 디자인 문제에 봉착했습니다. 많은 회사가 있습니다. 각 회사는 하나 이상의 상업 활동을합니다. 활동 유형은 전자 상거래, 지역 단위, 텔레비전, 자동 판매기 등입니다. 회사는 하나 이상의 전자 상거래 활동 또는 하나 이상의 로컬 단위 활동, 하나 이상의 자동 판매기 등을 가질 수 있습니다. 이 시나리오를 어떻게 모델링 할 수 있습니까? 회사 has_many 전자 상거래 has_many local_units has_many 텔레비전 등등?디자인 모델에 대한 조언

답변

1

당신은 하위 수준의 기능을 사용하여 활동을 일반화하고 여기에 레일 STI를 사용하여

class Company < ActiveRecord::Base 
    has_many :activities 
end 

class Activity < ActiveRecord::Base 
    belongs_to :company 
end 

class VendingMachine < Activity 
end 

company = Company.create 
company.activities << VendingMachine.new 
company.save 
+0

가 무슨 뜻 설계를위한 하나의 생각 할 수 있습니까? – Mauro

+0

예. 동일한 – abhas

+0

vending_machine, local_unit, television 및 다른 속성이 동일한 속성을 공유하지 않음을 의미합니다. STI를 사용하면 문제가 될 수 있습니다. – Mauro