Cambio de STI entre los tipos heredados.

En mis modelos uso STI así.

Modelo de vehículo: vehicle.rb

class Vehicle < ActiveRecord::Base end 

Modelo de coche: car.rb

 class Car < Vehicle end 

Modelo de autobús: bus.rb

 class Bus < Vehicle end 

Si creo un Coche, ¿puedo cambiar de alguna manera su tipo a Vehículo o Autobús?

Para alterar permanentemente el tipo, cambie el valor de la columna de type .

 c1 = Car.first c1.name # BMW c1.update_attribute(:type, "Bus") b1 = Bus.first b1.name # BMW 

Para cambiar también el tipo de objeto en memoria sin volver a cargarlo desde la base de datos, use “se convierte, como en

 c1 = c1.becomes(Bus)