【问题标题】:How can I use the sinatra http verb methods?如何使用 sinatra http 动词方法?
【发布时间】:2016-08-10 19:25:55
【问题描述】:

我知道http verb methods(get、post、puts 等)是如何定义的。我不明白的是如何在我的应用文件中使用http动词方法,即使它们没有添加到Object

我了解它们是如何使用的,我只是想了解 sinatra 在后台是如何工作的。

【问题讨论】:

  • 官方文档有你需要的一切。 sinatrarb.com/intro.html Routes 部分包含具有不同 http 动词的示例。
  • @SunnyMagadan 我已经澄清了我的问题

标签: ruby inheritance sinatra


【解决方案1】:

它使用 Sinatra::Delegator 模块扩展全局上下文 (Object),该模块将路由定义的适当方法委托给 Sinatra 应用程序。 https://github.com/sinatra/sinatra/blob/4797c022c96f7e023a365d5852c89fde0e08fa3e/lib/sinatra/main.rb#L31

https://github.com/sinatra/sinatra/blob/4797c022c96f7e023a365d5852c89fde0e08fa3e/lib/sinatra/base.rb#L1925-L1949

这是一个构建类似 sinatra 的应用程序的好例子:https://robots.thoughtbot.com/lets-build-a-sinatra 以上教程使用与 Sinatra 相同的委托方法。

【讨论】:

  • 那么http动词方法是main扩展类的一部分?
  • 另外,感谢教程链接。我实际上已经完成了它并且有一些关于它的问题(如果你有兴趣回答)here
  • 是的。这些 http 动词方法在 Sinatra::Application 和 Sinatra::Delegator 中定义,只允许通过将它们注入 Object 来从全局上下文中使用它们。
猜你喜欢
  • 1970-01-01
  • 2017-12-29
  • 2011-09-04
  • 1970-01-01
  • 2015-04-16
  • 2012-05-13
  • 2016-05-02
  • 1970-01-01
  • 2019-10-05
相关资源
最近更新 更多