Rails - 如何编码'可能属于?'

时间:2010-03-22 12:02:00

标签: ruby-on-rails

我正在开发一个Rails应用程序,其中包含一群人的信息。有两种用例:

  1. 管理员输入并维护一个人的个人资料
  2. 此人可以决定注册,登录并维护自己的个人资料
  3. 我正在尝试找出配置文件和用户之间的关系。现在,它是profile belongs_to :useruser has_one :profile

    但是这打破了,因为有些配置文件还没有用户 - 他们是管理员维护的。在这种情况下,user_id中的profiles列为空,连接失败,页面将不会加载。++

    我如何设置“可能属于_to”的关系?

    ++ (实际上,它显示为空白,没有显示错误,development.log也没有任何错误,但我可以看到它没有完成它为a做的所有查询确实有用户的个人资料。如果有人知道如何获得有用的错误消息,那也会很棒。)

2 个答案:

答案 0 :(得分:4)

这是正确的方法。 belongs_to不会阻止null值,这听起来像你想要的。

尚未属于用户的配置文件的“页面”可能没有那么多查询,因为不需要(或方式)查询该配置文件的用户表。

您应该profile.user检查nil并相应地显示您的观点。

答案 1 :(得分:0)

如果Profile真的属于User,则它不应该为空(就像没有{{1}时考虑Engine一样没有意义它附加到)。因此,您需要删除Car关联。

现在,您应该能够自由编辑Profile.belongs_to :user,并在准备好后将其附加到Profiles。但是你有另一个问题:

  

此人可以决定注册,登录并维护自己的个人资料

系统如何可靠地识别哪个预先创建的配置文件属于尚未拥有配置文件的特定用户?这是一个你必须解决的设计问题。