我正在编写一个 Ruby on Rails 应用程序,它有两个模型——用户和农场。如果用户的 farmer 字段设置为 true,则该用户被视为农民。但是,没有针对农民的单独类(class)。
一个用户可以有一个农场,也可以没有。 (我相信这称为零或一关系)。如果我把:
has_one :farm
在用户模型中
belongs_to :user
在农场模型中,这将在用户和农场之间建立一对一的关系,意味着每个用户都有一个农场。如果我这样做,每个用户都会有一个农场,这没有多大意义,因为有些用户无法拥有农场。
简而言之,我希望用户只有在其 farmer bool 值设置为 true 时才能拥有农场。否则,这种关系不应该存在。他们是否按照预期的方式使用 ActiveRecord 来做到这一点?
最佳答案
has_one 并不意味着您必须拥有一个相关实体(此处为农场)。 has_one 用于我们有 0 或 1 个链接记录的关系。
您可以在此处找到类似的讨论。
Can has_one association be used when the model has one or zero instances of another model?
关于ruby-on-rails - ActiveRecord 中的零个或一个关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369348/