我以前的Rails应用程序最终出现了膨胀的用户模型,其中包含一千个has_many关联以及用户模型中的一大堆特定于域的代码和属性。
在下一个应用程序中,我正在考虑将用于身份验证的模型(使用设计)与我用于应用程序其余部分的特定于域的模型分开。
这样的事情:
class User
devise :database_authenticatable, :etc
has_one :domain_user
end
class DomainUser
belongs_to :user
end
控制器可以使用访问器轻松访问域用户,而且大多数应用程序根本不关心身份验证模型。
class ApplicationController
def domain_user
current_user.domain_user
end
end
除了避免将所有内容放入一个模型之外,我希望最终得到一个可以在将来的应用程序中重用的身份验证子系统。
这是个好主意吗?有没有更好的方法来解决这个问题?我应该注意哪些陷阱?