rails中的一对一或零关联

模型I

class TimeLog  :destroy end 

模型II

 class CustomTimeFields < ActiveRecord::Base belongs_to :time_log end 

以上设计就数据库而言

timelogs表+ custom_time_field_id(外键)

custom_time_fields

因此,当我删除时间日志条目时,其关联的“custom_time_field”将被rails自动删除

但我想要数据库设计如下

表I:

time_logs

表二

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 )。