Ruby on rails 检查模型中引用完整性的最佳位置在哪里?

Ruby on rails 检查模型中引用完整性的最佳位置在哪里?,ruby-on-rails,Ruby On Rails,检查模型的关系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 我知道这是保证引用

检查模型的关系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) 还有什么?

如果引用完整性是应用程序中的一个主要问题,那么添加外键约束是最好的方法。是的,如果@user.save,您将无法执行
,但是您可以简单地营救异常并根据需要进行处理。希望这有帮助