未找到机架'方法'

时间:2012-08-28 20:30:52

标签: ruby rack

我似乎无法看到这段代码的内容:

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

1 个答案:

答案 0 :(得分: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

希望有所帮助!