未定义的方法`is_numeric?'

时间:2015-03-11 15:34:01

标签: ruby

我有以下两种方法:

class OrderHelper
  def is_numeric?
    true if Float(self) rescue false
  end
  def order_number_or_name(order_ref)
    if order_ref.is_numeric?
      "Your Order Reference Number: "
    else
      "Your Order Reference Name: "
    end
  end
end

我收到以下错误:

undefined method `is_numeric?' for "85757858":String

当我在第二种方法上方声明它时,is_numeric?如何定义?

1 个答案:

答案 0 :(得分:2)

因为帮助程序方法#is_numeric不是String实例的实例方法。将您的代码更改为:

def is_numeric? order_ref
  true if Float(self) rescue false
end

使用如下:

def order_number_or_name(order_ref)
  if is_numeric?(order_ref)
    "Your Order Reference Number: "
  else
    "Your Order Reference Name: "
  end
end