1. ホーム
  2. ruby-on-rails

[解決済み] Ruby: public static メソッドを作るには?

2022-02-08 23:36:51

質問

Javaでは、私はするかもしれません。

public static void doSomething();

そして、インスタンスを作らずにメソッドに静的にアクセスできるようになりました。

className.doSomething(); 

Rubyでこれを行うにはどうしたらよいでしょうか?これは私のクラスで、私の理解では self. はメソッドを静的にします。

class Ask

  def self.make_permalink(phrase)
    phrase.strip.downcase.gsub! /\ +/, '-'
  end

end

しかし、私が呼び出そうとしたとき。

Ask.make_permalink("make a slug out of this line")

得ることができる。

undefined method `make_permalink' for Ask:Class

メソッドをプライベートと宣言していないのに、なぜ?

どうすればいいですか?

指定された例は非常によく動作しています

class Ask
  def self.make_permalink(phrase)
    phrase.strip.downcase.gsub! /\ +/, '-'
  end
end

Ask.make_permalink("make a slug out of this line")

1.8.7と1.9.3でも試してみました。 元のスクリプトにタイプミスがあるのでしょうか?

よろしくお願いします。