2012-03-07 6 views
3

이름, 설명, sku 번호 등의 기본 정보가있는 일반 제품 모델을 갖고 싶습니다. 본질적으로 제품 모델을 확장하는 특정 유형의 다른 모델을 갖고 싶습니다. 예 : 색상, 크기 등의 추가 항목이있는 의류 모델을 만들고 싶습니다.레일을 사용하여 모델을 연장하려면 어떻게해야합니까?

이것을 구현하는 가장 좋은 방법은 무엇입니까? 다형성 또는 단일 테이블 상속을 생각하고 있습니다. 어쩌면 내가 잘못된 길로 갈거야 ??

답변

5

단일 테이블 상속 (documentation)은 일반적인 접근법입니다. 또 다른 기능은 모듈을 공유 기능으로 사용하는 것입니다.

다음은 모듈을 사용하는 예입니다.

module Product 
    def method_for_all_products 
    # ... 
    end 
end 

class Clothing < ActiveRecord::Base 
    include Product 

    def clothing_specific_method 
    # ... 
    end 
end 

class Furniture < ActiveRecord::Base 
    include Product 
end 
관련 문제