有没有简单的方法来验证HABTM关系的存在?

时间:2014-01-16 17:15:32

标签: ruby-on-rails validation model ruby-on-rails-4 associations

我正在开发一个rails项目,它有两个模型,Business和User,以及它们之间的HABTM关系。我想在业务模型中添加验证器,这样,如果没有至少一个用户,就无法创建或更新业务。

我被告知在业务模型中使用validate :users, :presence => true,但这不适用于关联,只适用于db列。对此有一个简单的验证器吗?

修改

我很糟糕,事实证明我有一个错字。 validate :users, :presence => true完全适用于协会。我正在选择第一个答案,因为Phillip的链接帮助我意识到了这一点,而且我要离开这个问题以防其他人犯同样的愚蠢错误。

2 个答案:

答案 0 :(得分:1)

查看validates_associated。文档说“验证关联的对象是否全部有效。适用于任何类型的关联。”

http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#method-i-validates_associated

答案 1 :(得分:0)

您可以执行以下操作:

class Business < ActiveRecord::Base
  validate :some_method

  def some_method
    # return true to validate true, return false to validate false
  end
end

虽然这可能不是内置方式,但这确实为您提供了如何验证模型验证的灵活性。