Action Pack — railsでの、リクエストからレスポンスまで
Action Packはウェブリクエストへのレスポンスをコントローラ部(ロジックを実行)とビュー部(テンプレートをレンダリング)とに振り分ける。この二段階アプローチは、テンプレートをレンダリングするか他のアクションへとリダイレクトするかの選択の前に、ある種のモデル部(しばしばデータベースで裏付けされる)をcreate、read、update、delete(略してCRUD)するアクションとして知られている。
Action Packは、これらアクションをパブリックメソッドとしてAction Controllersで実装し、Action Viewsを使用してテンプレートレンダリングを実装する。ゆえに、Action Controllersには、アプリケーションのある部分に関連するすべてのアクションに責任がある。通常、このグループは、単一(もしくは少数)のモデル部を中心に生成されたlists、CRUDsアクションから成る。したがって、ContactControllerは、コンタクトをlistingし、コンタクトをcreate、delete、updateする責任がある。WeblogControllerはポストとコメントの両方に責任があるであろう。
Action Viewテンプレートは、HTMLタグにembedded Rubyを混ぜて書く。コードでテンプレートが汚くなるの避けるために、多くのヘルパクラスがforms、dates、stringsの一般的な機能を提供する。アプリケーションが大きくなってもコードの分離を保てるよう、特定のヘルパを追加するのも簡単である。
注意:scaffoldやform buildingといった、いくつかの機能は、ActiveRecord(O/Rマッピングパッケージ)と密接な関係にあるが、それはAction PackがActive Recordに依存していることを意味しない。Action Packはあらゆる種類のバックエンドと一緒に使用できる独立したパッケージである(例えば、旧バージョンのAction Packに基づいているInstikiはMadeleineを使用している)。Active Recordと一緒になった時に、Action Packに何ができるかについての詳細は、www.rubyonrails.orgをお読みください。