1

我只想知道对用户和用户个人资料使用不同的模型是否有任何优势。

通过这种方式,我可以将用户详细信息(例如名字和姓氏、地址和出生日期)与身份验证分开存储。

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

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

4

1 回答 1

1

如果您想准备多提供者身份验证(例如使用omniauth),最好在架构中分离身份验证和身份。例如

class User < ActiveRecord::Base
  has_many :authorizations
end

class Authorization < ActiveRecord::Base
  belongs_to :user
end

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

Authority拥有一个模型has_many :authorizations作为保存特定于每个提供者的数据(例如图标、api 键)的好地方也可能很有用。

于 2012-06-12T23:09:35.100 回答