私はSinatra内から他のルートをトリガーする必要があるので、いくつかのルートの応答をバンドルするルートを作成しています。私はこのコードをSinatra READMEで見つけました。Sinatra内のクエリ文字列で別のルートをトリガー
status, headers, body = call env.merge("PATH_INFO" => '/bar')
ただし、クエリ文字列は送信しません。だから私はこれを試した:
status, headers, body = call env.merge(
"PATH_INFO" => '/bar',
"QUERY_STRING" => 'param=1'
)
それは動作していないようです。別のルートを呼び出して、文字列の値が呼び出されたルートのparamsハッシュに終わるようにクエリ文字列を渡すにはどうすればよいですか。
私たちはSinatra 1.3.1とRack 1.3.5を使用しています。
私の答えの横にあなたのルートロジックを、どちらのルートからでも呼び出せるヘルパーメソッドに入れてみませんか?他のルートからの複数のルートを呼び出すことは、良い設計の決定のようには聞こえません。 – three
アプリケーションの読み込みパフォーマンスを向上させるバックフィル。代わりに、ブラウザからのGETリクエストの束があります。 – Hemlock
いいえ、@ threeのように、パラメタを明示的に渡すヘルパーメソッドにルートの内容を移動し、結果を集計する必要があるときにそれらのメソッドを呼び出すこともできます。 Sinatra 1.3.2には、[バグ](https://github.com/sinatra/sinatra/issues/452)[導入済み](https://github.com/sinatra/sinatra/issues/453)があることにも注意してください。この問題を取り巻く – Phrogz