定义'get'方法在哪里?它如何被称为无对象?
require 'sinatra'
get '/hi' do
"Hello World!"
end
http://www.sinatrarb.com/主页中的示例。
答案 0 :(得分:4)
您没有在“无对象”上调用任何内容,而是在require 'sinatra'
上调用Object
并加载库(如果可以加载),这会为您提供方法get
等等。
定义get是在Sinatra gem中,在lib文件夹中,在一个名为base.rb的文件中,这个代码可能在你的计算机上。
# Defining a `GET` handler also automatically defines
# a `HEAD` handler.
def get(path, opts = {}, &block)
conditions = @conditions.dup
route('GET', path, opts, &block)
@conditions = conditions
route('HEAD', path, opts, &block)
end
为了理解这里发生了什么,你需要对Ruby的工作方式有一个基本的了解。这比答案中可以或应该回答的要多一点。