使用多个Proc对象的验证问题

sts*_*sts 1 ruby ruby-on-rails proc

我有验证Proc和问题

validates :subcategory, presence: true, 
if: Proc.new {|product| product.detail.blank?} && Proc.new { |product|  product.category.id != 16 }
Run Code Online (Sandbox Code Playgroud)

我的问题是当我true第二次进行验证时.

为什么会这样?如果它没有返回false,因为false && true=>false

And*_*eko 5

我认为你最好使用单个proc对象:

validates :subcategory,
  presence: true,
  if: Proc.new { |product| product.detail.blank? && product.category.id != 16 }
Run Code Online (Sandbox Code Playgroud)