我有一个非常胖的用户模型。我想将某些方法从中分离出来,并将它们放入我将创建的新模型中,称为 Manager,它将从具有 STI 的 User 继承。
class User < ActiveRecord::Base
..
def user_method
end
end
class Manager < ActiveRecord::Base
..
def manager_method
end
end
我很好奇 Devise 是如何处理这个问题的。假设我已经有一个用户,并且假设该用户是经理。但是当他登录时, current_user 对象将从 User 类中实例化,对吗?我假设以真正的面向对象的方式,Rails 不允许我们从父类的实例访问子类的方法......对吗?
那么我需要做些什么来确保 current_user 对象是 type 列中指定的类的实例,Rails 中的 STI 就是这种情况?