8

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

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

has_one :farm

在用户模型和

belongs_to :user

在农场模型中,这将在用户和农场之间建立一对一的关系,并意味着每个用户都有一个农场。如果我这样做了,每个用户都会有一个农场,这没有多大意义,因为有些用户不能拥有一个农场。

简而言之,我想要的是用户只有在他们的农民布尔值设置为 true 时才能拥有一个农场。否则,这种关系不应该存在。他们是使用 ActiveRecord 来做到这一点的一种方式吗?

4

1 回答 1

14

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

你可以在这里找到类似的讨论。

当模型具有另一个模型的一个或零个实例时,是否可以使用 has_one 关联?

于 2014-03-21T15:10:32.973 回答