检查模型的关系id(即外键)在Rails中是否有效的最佳实践和/或最佳位置是什么?
1)模型验证:
class User
validate :child_exists
def child_exists
errors.add(:child, "doesn't exist") if Child.where(id: self.child_id).nil?
end
end
2)只是数据库
add_foreign_key :users, :children
我知道这是保证参照完整性的唯一方法,但这会在尝试保存时导致异常,而不是if @user.save
中可以使用的正常非成功。
3)还有别的吗?
答案 0 :(得分:0)
如果引用完整性是应用程序中的主要问题,那么添加外键约束是最佳方法。是的,你不能做if @user.save
但是你可以简单地拯救异常并根据你的需要处理它。希望这会有所帮助。