ActiveRecord中的零个或一个关联

时间:2012-11-13 21:44:00

标签: ruby-on-rails ruby associations belongs-to has-one

我正在编写一个Ruby on Rails应用程序,它有两个模型 - User和Farm。如果用户的农民字段设置为true,则该用户被视为农民。但是,农民没有单独的课程。

用户可能拥有一个服务器场,或者根本没有服务器场。 (我相信这被称为零或一个关系)。如果我把:

has_one :farm
用户模型中的

belongs_to :user
在农场模型中,这将在用户和农场之间创建一对一的关系,并且意味着每个用户都有一个农场。如果我做了上述操作,每个用户都会有一个农场,这没有多大意义,因为某些用户没有农场。

简而言之,我想要的是,只有当他们的农民布尔值设置为true时,用户才能拥有一个农场。否则,关系不应该存在。他们是否可以按照使用ActiveRecord的方式使用ActiveRecord?

1 个答案:

答案 0 :(得分:10)

has_one并不意味着您必须拥有一个相关实体(此处为场)。 has_one用于我们有0或1个链接记录的关系。

您可以在此处找到类似的讨论。

Can has_one association be used when the model has one or zero instances of another model?