I have some models which use the same table via single table inheritance. I (think I) need to change objects from one class to another and not sure how to go about that. Consider these models: class Project < ActiveRecord::Base end class Goal < Project # inherits project characteristics end class Assignment < Project # inherits project characteristics end They are distinguished from each other by the 'type' column. class CreateProjects < ActiveRecord::Migration def self.up create_table :projects do |t| t.column :type, :string ... end end end How would I convert a 'Project' object into a 'Goal' object while preserving other characteristics (id, title, etc.)? Thanks!
on 2007-03-27 12:51
on 2007-03-27 19:53
Just change the value in the type column to change the type to any of the other types. I define a method that aliases to type to make it easier to access. You will need to reload the data to get a different Ruby object. Michael
on 2007-03-27 21:24
Thanks Michael. That's simple enough!