gpt4 book ai didi

ruby-on-rails - Rails 中的一对一或零关联

转载 作者:行者123 更新时间:2023-12-02 05:43:47 25 4
gpt4 key购买 nike

模型一

class TimeLog < ActiveRecord::Base
has_one :custom_time_fields, :dependent => :destroy
end

模型二

class CustomTimeFields <  ActiveRecord::Base
belongs_to :time_log
end

以上数据库方面的设计将是

时间日志表 + custom_time_field_id(外键)

自定义时间字段

因此,当我删除 timelog 条目时,rails 会自动删除其关联的“custom_time_field”

但是我想要像下面这样的数据库设计

表一:

时间日志

表二

custom_time_fields(以 time_log_id 作为外键)

表 I 将与表 II 有零个或一个关联

我如何在 Rails 模型中表示上述数据库设计,以便在我删除 time_log 时,关联的 custom_time_field 条目被自动删除。

最佳答案

您必须切换模型的 has_onebelongs_to 关系,以更改包含外键的表(具有关系 belongs_to 的模型> 是持有外键的那个)。不要忘记根据更改调整迁移(声明 time_log_id 列)。

我认为您正在寻找的“零或一”关系是 has_one 关系。此关系不是强制性的(除非您向其添加 validation)。

关于ruby-on-rails - Rails 中的一对一或零关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10562658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com