Model I
class TimeLog < ActiveRecord::Base
has_one :custom_time_fields, :dependent => :destroy
end
Model II
class CustomTimeFields < ActiveRecord::Base
belongs_to :time_log
end
上述数据库方面的设计将是
时间日志表+custom_time_field_id(外键)
自定义时间字段
所以当我删除时timelog与其关联的“custom_time_field”条目将被rails自动删除
但我想要像下面这样的数据库设计
Table I:
时间日志
Table II
custom_time_fields(将 time_log_id 作为外键)
我将有表零或一表二关联
我如何在 Rails 模型中表示上述数据库设计,以便当我删除 time_log 时,关联的 custom_time_field 条目会自动删除。
你必须切换has_one
and belongs_to
模型的关系来更改包含外键的表(具有关系的模型belongs_to
是持有外键的那个)。不要忘记根据变化调整您的迁移(声明time_log_id
柱子)。
我认为您正在寻找的“零或一”关系是has_one
关系。这种关系不是强制性的(除非您添加验证 http://guides.rubyonrails.org/active_record_validations_callbacks.html#validations-overview to it).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)