ruby-on-rails - ActiveRecord 中的零个或一个关联

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

我正在编写一个 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/

相关文章:

arrays - 如何在 ruby​​ 数组中仅添加正数?

ruby/OSX 10.9.2 : chef plugin knife-ec2 installs successfully, 但仍然不可用

grails - 的行为belongsTo

ruby-on-rails - 当后台发生其他事情时调用 ajax

ruby-on-rails - any_instance should_receive 无法正常工作

node.js - Sequelize - 嵌套关联查询只检索 1 个数组数据?

javascript - 未处理的拒绝 SequelizeEagerLoadingError : film is not associated to film

ruby-on-rails - 如何在 delayed_jobs 中添加或删除 worker ?

ruby-on-rails - Ruby on rails wkhtmltopdf css 样式表未在生产(linux)服务器上呈现

ruby-on-rails - Rails Geocoder - 仍在学习