我想映射两个Rails模型之间的关系,其中一方可以是optionalal。让我更准确......
我有两个模型:Profile
,用于存储用户配置文件信息(名称,年龄,...)和User
模型,用于存储用户对应用程序的访问权限(电子邮件,密码,...)
为了向您提供更多信息,User
模型由Devise gem处理,用于注册/签名。
以下是我的应用的情景:
1 /当用户注册时,在User
表中创建了一个新行,并且在Profile
表中有一个等价物。这导致以下脚本:
class User < ActiveRecord::Base
belongs_to :profile
end
2 /用户可以在不注册的情况下创建它的配置文件(带有公共信息的公共配置文件类型),因此Profile
中的一行不一定具有等效的User
行(这里是可选的)关系,UML中的0..1
关系。)
问题:class Profile < AR::Base
可选择使用User
进行映射的相应脚本是什么?
提前致谢。
答案 0 :(得分:4)
class Profile << ActiveRecord::Base
has_one :user
end
所有AR关系都是可选的(至少在默认情况下 - 我不确定你是否坚持它们存在)。如果您要求profile.user
未设置关系,则只需返回nil
。