除非另一个字段具有值,否则Rails将验证字段值

时间:2014-02-12 23:19:00

标签: ruby-on-rails

我有一个带有f.association :employeef.association :statuscode

的Rails表单

第一个状态码=“未分配”且员工字段正在分配员工。

因此,我在用户输入关联员工时,我希望状态码大于1。

我试过了:

  validates :statuscode_id, :numericality => { :greater_than => 1 }, :unless => :employee_id.blank?

但是,我明白了:

undefined method `validate' for false:FalseClass

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

你正在寻找这样的东西:

validates :statuscode_id, :numericality => { :greater_than => 1 }, :if => :employee_id_present?

private

def employee_id_present?
   employee_id.present?
end

...或其他任何人们说这样做的独特方式。 :)

答案 1 :(得分:0)

尝试使用lambda

validates :statuscode_id, :numericality => { :greater_than => 1 }, :unless => lambda { |o| o.employee_id.blank? }