我想知道在rails中是否有一种方法可以验证关联的存在(并且存在于数据库中)如果可能的话,使用任何其他gem(例如关联的&#34) ; belongs_to"对象在数据库中并且在保存之前有效。
validates_presence_of
不起作用,因为您可以使用新创建和未保存的对象。
我知道所有关于validates_existence
宝石的信息,但我想尽可能避免使用它。
答案 0 :(得分:1)
您可以将validates_associated
与validates_presence_of
结合使用。
validates_associated
将在关联模型上运行验证(您必须在该模型中定义)。
validates_presence_of
验证了关联的存在。
修改强>
解决您的评论:不是专门验证数据库中存在的常见方案,但您可以这样做:
validate :association_exists
def association_exists
# query database for the association record and return true if it exists
# self is model instance inside this method
end