Ruby on Rails:验证关联的存在和存在

时间:2016-06-28 03:38:19

标签: ruby-on-rails activerecord rails-activerecord

我想知道在rails中是否有一种方法可以验证关联的存在(并且存在于数据库中)如果可能的话,使用任何其他gem(例如关联的&#34) ; belongs_to"对象在数据库中并且在保存之前有效。

validates_presence_of不起作用,因为您可以使用新创建和未保存的对象。

我知道所有关于validates_existence宝石的信息,但我想尽可能避免使用它。

1 个答案:

答案 0 :(得分:1)

您可以将validates_associatedvalidates_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