web-dev-qa-db-ja.com

シナトラvs. Rails

シナトラとRailsサンプルのいくつかを試しましたが、どの機能がどのテクノロジーに属しているかを理解するのに苦労しています。

Sinatra/Railsを使用して具体的に何が得られますか? ActionPack/ActionViewだけですか?間違っている場合は修正しますが、Webrick/Mongrelを使用して.erbファイルを提供することはできますか?そして、それらのファイルでActiveRecordテクノロジーを使用しても、ポスト変数、セッション状態、クエリ文字列変数にアクセスできますか?

したがって、上記のPHPのようなシナリオから始める場合、皆さんにお願いします。 Webrick + ERB + ActiveRecord、Sinatraを使用すると何が得られますか?そして、Railsを使用することでさらに何が得られますか?

65
LoveMeSomeCode

Sinatraにとっては、Rackのラッパーのようなものです。そのため、最初にRackのポイントを尋ねる必要があります。ラックは基本的に、フレームワークが結果を返す方法の仕様であり、ラックがサポートするWebサーバーで返されたものを使用できます。したがって、フレームワーク/サーバーの組み合わせを自由に選択できる互換性レイヤーであり、それらが連携して動作するかどうかを心配することはありません。フレームワークがRack準拠の場合、Rackを介して実質的にすべてのサーバーにデプロイできるはずです。

現在、ラックは非常に低レベルです。 Sinatraなどのフレームワークは、Niceルーティング、ヘルパー、ビフォア/アフターフィルターなどを提供します。ドキュメントを参照して、取得できるものを確認するだけです。 Railsははるかに機能的であり、多くの点で「魔法」です。つまり、Rails私は個人的には少なくともこのため、Rails internals。

62
ehsanul

Railsによるゲインは、ActionView/ActionPackです。ただし、Mongrel/Erbに置き換えることができます。これは別のものです。

Name_routeやフォームのエラー管理など、ビューにあるすべてのヘルパーです。それはすべて、リソース管理とInheritedResourcesのようなすべてのプラグインです。 Railsの利点。

Padrino環境のようなツールを使用して、このヘルパーをすべて使用できます。しかし、すべてのプラグインがアクティブになった後は本当に高速ですか?そうは思いません。

Rails 3、Railsは、多くのRackMiddlewareを備えた完全なRackアプリケーションです。ミドルウェアをドロップオフするだけで、応答を増やすことができます。

5
shingara