2012-06-24 55 views
0

我想弄清楚rails的實現方法。我有一個表類型的車輛Rails - 多個表之間的繼承

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

和汽車的情況下,實際存在的

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. 我想:類型車輛表移動到vehicle_instances表。我會如何去做這件事?
  2. 有些情況下,vehicle_instances表中的type更具體(例如,在車輛中鍵入'motorcyle',但在實例中輸入:'dirt_motorcycle'或輸入:'road_motorcycle')。在實例化Vehicle時,有什麼方法可以捕獲Motorcycle類中的那些類,但是在實例化VehicleInstance時更具體的類下?

謝謝!

回答

0
  1. 標識已經離開它作爲父的屬性,但如果你必須......在vehicleInstance做到這一點:

    before_save:pull_type

    高清pull_type self.type =自我。 vechile.type 結束

而且,改變車輛列vehicle_id - 它的預期的語法和停止關係的衝突。

  1. 我個人倒一列添加到「亞型」的實例:亞型的選項將基於父類型[污垢,種族,零] 。