Ruby - 不确定调用函数的语法

时间:2012-07-05 15:47:09

标签: ruby-on-rails ruby

我在ruby控制台中,我正在尝试调用一个方法,但我没有正确的语法。

以下是文件的结构:

module App
  module Tools
    module Pollers
      class Kpi
        attr_reader :start_time,:stop_time

        def initialize(start_time,stop_time)
          @start_time = start_time
          @stop_time = stop_time
        end
        .....

我试图在控制台中调用这个:

?> kpi = App::Tools::Pollers::Kpi.initialize(start,end_date)
SyntaxError: compile error
(irb):17: syntax error, unexpected tCONSTANT, expecting kDO or '{' or '('

有人能够指出我正确的语法来调用初始化吗?

谢谢!

3 个答案:

答案 0 :(得分:7)

initialize是类Kpi的实例方法。 App::Tools::Pollers::Kpi是一个类,只能在其上运行类方法。 Ruby为每个类提供了一个免费初始化的类方法。此方法为new。调用new,它使用与initialize相同的参数,并返回一个实例:

kpi = App::Tools::Pollers::Kpi.new(start,end_date)

答案 1 :(得分:3)

根据错误消息判断,问题出在其他地方,但您可能需要Kpi.new,而不是Kpi.initialize

嗯,显然它不在其他地方:)。

答案 2 :(得分:3)

这将是

App::Tools::Pollers::Kpi.new(start,end_date)

您的irb会话中似乎还存在语法错误。