在Rails应用程序中,直接从数据库推断列名,类型和默认值。有没有办法在初始化或尝试保存时从数据库约束推断验证?
这将允许更多的DRY,并确保在访问数据库并获得异常之前可以轻柔地验证所有数据,因为验证将涵盖所有数据库约束。数据库的约束是使用它们时数据无效性的权威信息来源。
或者,是否可以通过命中数据库约束使ActiveRecord
救援,并且好像弱验证失败了?这意味着可以在不重新启动或编辑Rails应用程序的情况下在外部操纵数据库约束,性能将得到改善,因为唯一性验证不需要单独的查询,并且唯一性验证也不会受到竞争条件的影响。
答案 0 :(得分:3)
您可以使用Enforce Schema Rules gem:
https://github.com/twinge/enforce_schema_rules
它根据您已在模式中创建的数据库规则验证模型。
示例:
class Person < ActiveRecord::Base
enforce_schema_rules :except => :dhh
end