Ruby: 从内部调用父方法 class

Ruby: Call parent method from internal class

例如,我有类似的东西 (Ruby 1.9.1):

class Chef::Recipe::MyFancyFeature
  def my_action do
    search(:node, 'repice[common]')
  end
end

我认为这样没有区别:

class Chef
  class Recipe
    class MyFancyFeature
      def my_action do
        search(:node, 'repice[common]')
      end
    end
  end
end

和我的问题的第二部分(最重要的):方法 search 是在 Chef::Recipe 中定义的,我如何从我的 MyFancyFeature class 中调用它?

ad 1) 是的,它们是一样的

ad 2) 如果你想从 Chef::Recipe 调用 search,你必须这样做:

class Chef
  class Recipe
    def search(arg1, arg2)
      # your logic here
      p arg1
      p arg2
    end

    class MyFancyFeature
      def my_action
        Recipe.new.search(:node, 'repice[common]')
      end
    end
  end
end

祝你好运!