使用belongs保存记录时,是否可以确保保存在子记录中的外键实际存在于父表中? (假设它不是多态的)。
我知道有插件可以做到这一点,但我想知道ar是否有办法解决这个问题。
谢谢!
答案 0 :(得分:1)
尝试validates_presence_of
class Model2 < ActiveRecord::Base
belongs_to :model1
validates_presence_of :model1
end
答案 1 :(得分:1)
您可以使用before_save
and before_create
处理程序手动执行此操作。这些不一定是最好的方法,但你不应该害怕卷起袖子,必要时手工完成工作。
并且,因为你是明智的(AKA偏执狂),你可以在数据库中放置一个真正的外键约束;数据库中的FK还可以防止因删除其他内容引用的内容而导致的损坏。缺点是ActiveRecord并不真正支持数据库中的FK,因此您必须手动使用RAW SQL添加和维护它们。