但是,我正在尝试在 Rack 中设置一个基本的路由系统。我不明白为什么第一个路由('/')有效,而第二个('/help')无效。在“/help”的情况下返回的是 NoMethodError。为什么会这样,我该如何解决?谢谢你。
require 'rack'
class MyApp
def self.call(env)
new.call(env)
end
def self.get(path, &block)
@@routes ||= {}
@@routes[path] = block
end
def call(env)
dup.call!(env)
end
def call!(env)
@req = Rack::Request.new(env)
@res = Rack::Response.new
@res.write route(@req.path)
@res.finish
end
def route(path)
if @@routes[path]
@@routes[path].call
else
'Not Found'
end
end
def to_do(arg)
arg
end
end
MyApp.get '/' do
'index'
end
MyApp.get '/help' do
to_do 'help'
end
run MyApp