このような,Aモデルを継承したBモデルがあるときに,AモデルのインスタンスをBにキャストしたいことがあると思います.
class A < ActiveRecord::Base
end
class B < A
end
このようなActiveRecordのキャストにはbecomes()
メソッドが使えます.
AのインスタンスをBにキャストしたいときは次のようになります.
a = A.new()
b = a.becomes(B)
簡単ですね!
Javaとかの様にb = (B)a
でキャストが出来なかったので,困っていました.