在 Rubymine 中定义方法 returns "undefined method" 错误

Defining a method in Rubymine returns "undefined method" error

我正在执行一个 class,在 ruby​​mine 中只有这段代码:

def saythis(x)
  puts x
end
saythis('words')

它 returns 一个错误:undefined method `saythis',而不是打印字符串 'words'。我在这里错过了什么?在 irb 中复制此代码打印字符串 'words'.

我假设你写了一个如下所示的 class 并且没有将该代码写入 irb 控制台。问题是你定义了一个实例方法,但是尝试从class级别调用该方法。

class Foo
  def say_this(x)      # <= defines an instance method
    puts x
  end
  say_this('words')    # <= calls a class method
end

有两种方法"fix":

  1. 定义 class 方法而不是实例方法:def self.say_this(x)
  2. 调用实例方法而不是class方法调用:new.say_this(x)