Rails 3.2为用户帐户和配置文件使用单独的模型是否有任何优势?

时间:2012-06-12 22:50:39

标签: ruby-on-rails authentication devise models

我只想知道为用户和用户配置文件设置不同的模型是否有任何优势。

这样我就可以存储用户详细信息,例如姓名,地址和D.O.B,与身份验证分开。

目前我想使用设计进行身份验证,但我希望如果我将来需要或想要更改它,那么这样做会更容易。

另外我认为不使用一个行数较多的模型可能会有一些轻微的性能优势?

1 个答案:

答案 0 :(得分:1)

如果您要准备多提供商身份验证(例如使用omniauth),最好在架构中separate authentication and identity。例如

class User < ActiveRecord::Base
  has_many :authorizations
end

class Authorization < ActiveRecord::Base
  belongs_to :user
end

然后,您将为用户用于登录的每个提供商提供单独的身份验证记录,例如您的本地登录,Twitter,Facebook等。

Authority模型has_many :authorizations作为保存每个提供商特有的数据(例如图标,API密钥)的好地方也可能很有用。