Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to cast an ActiveRecord object to another class when using STI?

Tags:

I'm currently using ActiveRecord single table inheritance.

How can I cast one of my models from type A to B? They have the same parent.

like image 241
fotanus Avatar asked Aug 06 '10 21:08

fotanus


People also ask

What does ActiveRecord base do?

ActiveRecord::Base indicates that the ActiveRecord class or module has a static inner class called Base that you're extending.

What is an ActiveRecord object?

In Active Record, objects carry both persistent data and behavior which operates on that data. Active Record takes the opinion that ensuring data access logic as part of the object will educate users of that object on how to write to and read from the database.

What is ActiveRecord in Ruby on Rails?

What is ActiveRecord? ActiveRecord is an ORM. It's a layer of Ruby code that runs between your database and your logic code. When you need to make changes to the database, you'll write Ruby code, and then run "migrations" which makes the actual changes to the database.


1 Answers

#becomes is what you are looking for:

http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-becomes

like image 57
Omar Qureshi Avatar answered Sep 25 '22 07:09

Omar Qureshi