如何在课程中访问请求?

时间:2014-05-28 16:49:08

标签: ruby sinatra

不确定是否可能。说,我有以下申请:

require 'sinatra'

get '/' do
    C.m
end

def f
    request.url
end

class C
    def self.m
        f
    end
end

显然,它不起作用。有没有办法让它工作而不改变C类?

UPD 但有人可能会改变调用f的方式。

1 个答案:

答案 0 :(得分:1)

您可以传递请求对象:

require 'sinatra'

get '/' do
  C.m(request)
end

def f(request)
  request.url
end

class C
  def self.m(request)
    f(request)
  end
end