我正在学习 Rails 中的自定义验证,并试图将其应用于比较两个表单字段。到目前为止,我可以轻松地将一个值传递给我存储的自定义验证器,app/validation/pin_validator.rb
并且它工作正常。但我真的很想设置类似下面的东西,它会接受表单中的两条数据:
class PinValidator < ActiveModel::EachValidator
def validate_each (record, attribute, value)
if value1 > value2
record.errors[attribute] << (options[:message] || "validator working")
end
end
end
并从模型中调用它,如下所示:
validates :pin_number, :id_string, pin: true
Where:id_string
和:pin_number
都是表单字段,并且将被比较为value1
andvalue2
有没有办法做到这一点?
提前谢谢了!
注意:上面的值比较确实可以在前端用一点javascript来解决。我要求服务器端解决方案的原因是我最终打算将这两个值与数据库中的一组条目进行比较。上面的例子只是为了把我的问题提炼成简单的东西。