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_one
和belongs_to
关系以更改包含外键的表(具有关系belongs_to
的模型是持有外键的模型)。 不要忘记根据更改调整迁移(以声明time_log_id
列)。
我认为你正在寻找的“零或一”关系是has_one
关系。 此关系不是必需的(除非您向其添加validation )。