With_Options执行不正确

时间:2018-09-04 12:39:56

标签: ruby-on-rails ruby

我有一个用于验证和多种产品类型的模块。在此模块中,我想存储MOCAP产品类型的条件。

这些验证仅在product_type_mocap吗?是真的。但是,即使它们为假,它们也会运行...有人对为什么有任何想法吗?我可以根据需要提供更多详细信息

module Validations
  module Product
    module Mocap
      extend ActiveSupport::Concern

      included do
        with_options if: :product_type_mocap? do |product|
          product.validates :length,
          :frame_rate_type,
          :biped,
          :loopable,
          presence: true
        end

        def product_type_mocap?
          product_type_id == 5
        end
      end
    end
  end
end

1 个答案:

答案 0 :(得分:1)

您尝试过其他语法吗?还是Start-Process -FilePath $installerFileName -Verb "runas" -ArgumentList $parameter -Wait 的lambda?例如

if

with_options presence: true, if: ->(obj) { obj.product_type_mocap? } do validates :length, :frame_rate_type, :biped, :loopable end 会将存在验证器传递给每个项目,我发现lambda语法的工作原理比符号更一致。