2012-06-24 2 views
0

레일을 구현하는 방법을 알아 내려고합니다. 차량 테이블에 입력 한 vehicle_instances 테이블로 이동하기 : 사실레일 - 여러 테이블 간의 상속

create_table :vehicle_instances do |t| 
    t.integer vehicle #links to above table 
    t.integer owner 
    t.integer bought_date 
    t.integer mileage 
    t.string type #truck, motorcycle, sedan, etc, but with different methods than above 
end 
  1. 기존 나는이 원하는 차량

    create_table :vehicles do |t| 
        t.string make 
        t.integer model_year 
        t.string type #truck, motorcycle, sedan, etc 
    end 
    

    와 그 차의 인스턴스 유형의 테이블을 가지고있다. 이 일을 어떻게 하죠?

  2. 유형이 vehicle_instances 테이블에서 더 구체적 일 수 있습니다 (예 : 차량의 'motorcyle'을 입력하고 'dirt_motorcycle'을 입력하거나 인스턴스에 'road_motorcycle'입력). Vehicle을 인스턴스화 할 때 Motorcycle 클래스에있는 클래스를 모두 잡을 수있는 방법이 있습니까? 그러나 VehicleInstance를 인스턴스화 할 때보다 구체적인 클래스 아래에 있습니까?

감사합니다!

답변

0
  1. 이드 부모의 속성으로 남아있는,하지만 당신은 ... vehicleInstance에서이 작업을 수행해야하는 경우 :

    before_save : pull_type

    데프 = 자기 self.type을 pull_type. 이 예상됩니다 구문을하고 관계의 충돌을 중지합니다 - vechile.type 말 또한

변경 차량 열 vehicle_id합니다. 하위 유형에 대한 옵션이 부모 유형에 따라 할 것 [먼지, 인종, 전무] :

  1. 개인적으로 나는 '하위'의 인스턴스에 열을 추가 할 것입니다.
관련 문제