Method: ActiveRecord::Persistence#becomes!
- Defined in:
- activerecord/lib/active_record/persistence.rb
#becomes!(klass) ⇒ Object
Wrapper around #becomes that also changes the instance’s STI column value. This is especially useful if you want to persist the changed class in your database.
Note: The old instance’s STI column value will be changed too, as both objects share the same set of attributes.
510 511 512 513 514 515 516 517 518 |
# File 'activerecord/lib/active_record/persistence.rb', line 510 def becomes!(klass) became = becomes(klass) sti_type = nil if !klass.descends_from_active_record? sti_type = klass.sti_name end became.public_send("#{klass.inheritance_column}=", sti_type) became end |