我可以在不属于类或其父类的类中调用方法吗?

时间:2015-09-14 14:13:49

标签: ruby

我正试图在项目中找到错误的原因。我认为这个问题的主题是原因。以下是一些描述问题的代码:

sed -i "/<\/Testing>/i '<Tester>$VAR</Tester>'" filename

那么,是否可以从类中的classmethod调用类外的方法?从我尝试过它似乎没有用,但我不确定。

2 个答案:

答案 0 :(得分:2)

检查

class Class2 
 def self.method()
   content = 10
   return content
 end
end
class Class
  def self.classmethod()
     number = Class2.method()
     puts number
  end
end

答案 1 :(得分:1)

在类方法上下文中使用self这一事实意味着您要在类上调用它。由于该方法未在该类中定义,因此您将收到错误。如果删除调用的self.部分,则会成功。

def foo
  10
end

class Bar
  def self.baz
    puts foo
  end
end

但是,它只会因主范围中定义的方法而起作用。如果所有内容都包含在模块中,则必须明确说明方法的位置:

module Bong 
  def self.foo
    10
  end

  class Bar
    def self.baz
      puts Bong.foo
    end
  end
end