我的rails应用程序中有一个用户模型。它只有一个名称属性以及电子邮件和&添加密码以通过Devise登录。我想为用户创建一个模型配置文件。我该如何创造它。通过向现有用户模型添加配置文件属性,或者通过创建模型配置文件并向其添加belongs_to关联。
答案 0 :(得分:6)
为用户模型添加更多属性会使您的用户对象有点沉重,并且不是最好的想法,因为您将经常调用该对象。例如,要验证用户,您不需要加载current_user帮助程序所具有的位置或出生日期等配置文件属性。因此,最好在单独的模型中提取配置文件属性,并采用gabreilhilal的方法。
答案 1 :(得分:5)
嗯,这取决于您的要求。
如果用户只能有一个profile
并且您只想添加一些与user
相关的属性,则没有理由为其创建新类。
但是,即使用户只能拥有一个配置文件,您也可能需要执行一些normalisations。如果是这样,您可以从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
总结一下,没有对错......这取决于你的要求,以及你的设计决定。