Validation 在rails 4中应用条件验证时,客户端验证不起作用

Validation 在rails 4中应用条件验证时,客户端验证不起作用,validation,client-side,Validation,Client Side,我正在使用客户端验证gem。应用条件时客户端验证不起作用。 这是我的模型课 validates_uniqueness_of :project_code **validates :price, numericality: true, :if => :project_type_fixed?** def project_type_fixed? project_type == 'Fixed' end 在此代码验证中,project\u代码运行良好,但对于price则不起作用。 提前谢谢 客

我正在使用客户端验证gem。应用条件时客户端验证不起作用。 这是我的模型课

validates_uniqueness_of :project_code
**validates :price, numericality: true, :if => :project_type_fixed?**

def project_type_fixed?
  project_type == 'Fixed'
end
在此代码验证中,
project\u代码
运行良好,但对于
price
则不起作用。
提前谢谢

客户端验证不会立即验证条件。你所观察到的是预期的行为

为了验证条件,您需要在表单中强制它们:

f.number_field :price, :validate => { :numericality => true}
此外,根据,在生成表单时,该值需要计算为true。但是,有一种破解方法:确定条件计算结果是否为true的方法称为
run_conditional
(),因此您可以在模型中重写该方法:

def run_conditional(method_name_value_or_proc)
  (:project_type_fixed? == method_name_value_or_proc) || super
end