使用Devise将“域用户”与“身份验证用户”分开

时间:2018-01-16 14:57:07

标签: ruby-on-rails devise

我以前的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

除了避免将所有内容放入一个模型之外,我希望最终得到一个可以在将来的应用程序中重用的身份验证子系统。

这是个好主意吗?有没有更好的方法来解决这个问题?我应该注意哪些陷阱?

0 个答案:

没有答案