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です。を呼び出しnewます。これは、と同じ引数を取り、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 に答える