我有一个模型 A,它与另一个模型 B 具有“has_many”关联。我有一个业务要求,即插入 A 需要至少 1 个与 B 相关的记录。是否有我可以调用的方法来确保这一点是真的,还是我需要编写自定义验证?
最佳答案
您可以使用validates_presence_of
http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates_presence_of
class A < ActiveRecord::Base
has_many :bs
validates_presence_of :bs
end
或者只是验证
http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates
class A < ActiveRecord::Base
has_many :bs
validates :bs, :presence => true
end
但是,如果您将 accepts_nested_attributes_for
与 :allow_destroy => true
一起使用,则会出现错误:Nested models and parent validation 。在本主题中您可以找到解决方案。
关于ruby-on-rails - Rails - 验证关联的存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689888/