【问题标题】:Rack 'method not found'机架“未找到方法”
【发布时间】:2012-08-28 20:30:52
【问题描述】:

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

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

【问题讨论】:

    标签: ruby rack


    【解决方案1】:

    你需要调整一些东西。

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

    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
    

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多