我不知道Sinatra方法(如get
或params
)的定义。根据{{1}},它们是Sinatra的base.rb
类的静态部分。只需写Base
,我怎么能在任何地方打电话给他们?我不应该写get
之类的东西吗?我怎么能自己定义这样的东西?
答案 0 :(得分:3)
答案可以在这里找到:https://github.com/sinatra/sinatra/blob/master/lib/sinatra/main.rb
当您以简单模式执行Sinatra时,get
或set
或post
等所有方法都通过Sinatra :: Delegator委派,其定义如下:https://github.com/sinatra/sinatra/blob/master/lib/sinatra/base.rb#L1977并混合到main.rb
单独留下所有Sinatra技巧,对于您自己的模块,您可以通过非常简单的代码实现效果:
module MyMixin
def testme
puts 'testme'
end
end
extend MyMixin
testme # => testme