4

我的 Rails 应用程序中有一个用户模型。它只有一个名称属性以及添加到它的电子邮件和密码,以便通过设计登录。我想为用户创建一个模型配置文件。我将如何创建它。通过将配置文件属性添加到现有用户模型或通过创建模型配置文件并向其添加belongs_to 关联。

4

2 回答 2

6

向您的用户模型添加更多属性会使您的用户对象有点重,并且考虑到您将经常调用该对象,这不是最好的主意。例如,要验证用户,您不需要加载诸如位置或出生日期之类的配置文件属性,而 current_user 助手会这样做。因此,最好在单独的模型中提取配置文件属性并采用 gabreilhilal 的任何一种方法。

于 2012-07-22T19:00:58.573 回答
5

好吧,这取决于您的要求。

如果一个用户只能有一个profile,而您只是要添加一些与 相关的属性user,则没有理由为其创建一个新类。

但是,即使用户只能拥有一个配置文件,您也可能需要进行一些规范化。如果是这样,您可能会从表中删除一些属性users以创建一个表profiles,并且您将拥有一对一的关系。

class User < ActiveRecord::Base
  has_one :profile
end 

class Profile < ActiveRecord::Base
  belongs_to :user
end 

嗯...根据您的要求,您可能会遇到用户可能拥有多个个人资料的情况。如果是这样:

class User < ActiveRecord::Base
  has_many :profiles
end 

class Profile < ActiveRecord::Base
  belongs_to :user
end 

总而言之,没有对错之分……这取决于您的要求以及您的设计决策。

于 2012-07-22T18:48:19.410 回答