2016-08-10 2 views
0

私はhttp verb methods(get、post、putsなど)の定義方法を知っています。私が理解していないのは、Objectに追加されていないにもかかわらず、私のアプリケーションファイルにhttp動詞のメソッドを使用する方法です。sinatra http動詞の方法はどのように使用できますか?

私は彼らがどのように使われているのか理解していますが、私はsinatraがどのようにフードの下で動作するのか理解しようとしています。

+0

公式ドキュメントには、必要なものすべてが含まれています。 http://www.sinatrarb.com/intro.html ルートセクションには、さまざまなhttp動詞の例が含まれています。 – SunnyMagadan

+0

@SunnyMagadan私は質問を明確にしました – thesecretmaster

答えて

1

Sinatra::Delegatorモジュールを使用してグローバルコンテキスト(Object)を拡張し、Sinatra Applicationへのルート定義に適切なメソッドを委任します。ここで 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

シナトラのようなアプリケーションを構築する良い例です:チュートリアルの上https://robots.thoughtbot.com/lets-build-a-sinatra はシナトラと同じ委任アプローチを使用しています。

+0

したがって、http動詞のメソッドは、主な拡張クラスの一部ですか? – thesecretmaster

+0

また、チュートリアルのリンクに感謝します。私は実際にすでにそれを完了し、それについてのいくつかの質問がありました(もしあなたが答えることに興味があれば)[ここ](http://stackoverflow.com/questions/38357195/how-does-sinatra-start-the-server )。 – thesecretmaster

+1

はい。これらのhttp動詞メソッドはSinatra :: Applicationで定義されており、Sinatra :: DelegatorはグローバルコンテキストからそれらをObjectに注入するだけで使用できます。 – SunnyMagadan

関連する問題