0

我在 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 '('

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

谢谢!

4

3 回答 3

7

initialize是类的实例方法KpiApp::Tools::Pollers::Kpi是一个类,并且只能在其上运行类方法。Ruby 为每个类免费提供了一个类方法来初始化。这种方法是new。Call new,它采用与 your 相同的参数initialize,并返回一个实例:

kpi = App::Tools::Pollers::Kpi.new(start,end_date)
于 2012-07-05T15:51:52.330 回答
3

从错误消息来看,问题出在其他地方,但您可能想要Kpi.new,而不是Kpi.initialize

好吧,显然它不在其他地方:)

于 2012-07-05T15:51:52.050 回答
3

这将是

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

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

于 2012-07-05T15:53:35.817 回答