假设我有模型
User < ActiveRecord::Base
end
和他的 STI 兄弟
MasqueradeUser < User
end
masquerade_user = MasqueradeUser.find 123
masquerade_user.class
# => MasqueradeUser
听起来很可笑,可以将此对象转换回父类User
masquerade_user.some_magic.class # => User
我知道我可以覆盖mode_name
,is_a?(User)
和其他方法,以便 MasqueradeUser 将返回类似的值User
MasqueradeUser < User
def model_name
'User'
end
end
我只是想知道是否有办法将对象完全降级为父类实例