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

时间:2015-06-23 15:14:39

标签: 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

我知道这是保证参照完整性的唯一方法,但这会在尝试保存时导致异常,而不是if @user.save中可以使用的正常非成功。

3)还有别的吗?

1 个答案:

答案 0 :(得分:0)

如果引用完整性是应用程序中的主要问题,那么添加外键约束是最佳方法。是的,你不能做if @user.save但是你可以简单地拯救异常并根据你的需要处理它。希望这会有所帮助。

相关问题