0

我似乎看不出这段代码是怎么回事:

class Cherry
    class << self
        def call env
            self::Application.call
        end
    end
end

class Cherry
    class Application
        def call env
            #Framework logic
        end
    end
end

run Cherry

那是我的应用程序不起作用的部分。我不知道为什么: NoMethodError at / undefined method 'call' for Cherry::Application:Class

4

1 回答 1

2

你需要调整几件事。

当您在call内部定义方法时Application,您将其定义为实例方法,然后您尝试将其作为类方法调用,因此让我们将定义修复为类方法定义:

class Cherry
    class Application
        def self.call env
            #Framework logic
        end
    end
end

接下来会有一个新错误,关于没有将正确数量的参数传递给call方法,因此我们将env参数添加到您调用call方法的位置。

class Cherry
    class << self
        def call env
            self::Application.call env
        end
    end
end

希望有帮助!

于 2012-08-28T20:49:39.393 回答