我正在执行一个只在rubymine中使用此代码的类:
def saythis(x)
puts x
end
saythis('words')
它返回错误:undefined method `saythis'
,而不是打印字符串'words'
。我在这里错过了什么?在irb中复制此代码会打印字符串'words'
。
答案 0 :(得分:0)
我假设您编写了一个类似下面的类,并没有将该代码写入irb控制台。问题是您定义了一个实例方法,但尝试从类级别调用该方法。
class Foo
def say_this(x) # <= defines an instance method
puts x
end
say_this('words') # <= calls a class method
end
有两种方法可以“解决”这个问题:
def self.say_this(x)
new.say_this(x)