我正在开发一个Rails应用程序,其中包含一群人的信息。有两种用例:
我正在尝试找出配置文件和用户之间的关系。现在,它是profile belongs_to :user
和user has_one :profile
。
但是这打破了,因为有些配置文件还没有用户 - 他们是管理员维护的。在这种情况下,user_id
中的profiles
列为空,连接失败,页面将不会加载。++
我如何设置“可能属于_to”的关系?
++ (实际上,它显示为空白,没有显示错误,development.log
也没有任何错误,但我可以看到它没有完成它为a做的所有查询确实有用户的个人资料。如果有人知道如何获得有用的错误消息,那也会很棒。)
答案 0 :(得分:4)
这是正确的方法。 belongs_to
不会阻止null
值,这听起来像你想要的。
尚未属于用户的配置文件的“页面”可能没有那么多查询,因为不需要(或方式)查询该配置文件的用户表。
您应该profile.user
检查nil
并相应地显示您的观点。
答案 1 :(得分:0)
如果Profile
真的属于User
,则它不应该为空(就像没有{{1}时考虑Engine
一样没有意义它附加到)。因此,您需要删除Car
关联。
现在,您应该能够自由编辑Profile.belongs_to :user
,并在准备好后将其附加到Profiles
。但是你有另一个问题:
此人可以决定注册,登录并维护自己的个人资料
系统如何可靠地识别哪个预先创建的配置文件属于尚未拥有配置文件的特定用户?这是一个你必须解决的设计问题。