我尝试用多种方法重写这个函数来解决这个错误,但是,在禁用它周围的警察之前,我想听从其他专家的意见。
def numeric?(obj)
obj.to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? false : true
end
这是这样使用的:
def index
if params[:job_id] && numeric?(params[:job_id])
此问题已通过以下方式解决:检查变量是否为整数
更新尝试:
def numeric?(string)
!!Kernel.Float(string)
rescue TypeError, ArgumentError
false
end