ActionView概要 - View - RailsGuides v4.0.0 日本語訳
2014/9/25追記:
http://railsguides.jp/action_view_overview.html
の訳がすばらしいのでそちらを見てください。
ActionView概要
このガイドを参照することによって、次のことを知ることができます。
- Action Viewが何で、Railsでどのように使うか。
- テンプレートとパーシャル、そしてレイアウトを最も良く用いる方法。
- どんなヘルパーがAction Viewによって提供され、どのように自分でつくるか。
- localized viewsを使う方法
- Railsの外でどのようにAction Viewを使うか。
1 Action Viewとは何たるか?
Action View と Action Controller は Action Packを成す2つの主なコンポーネントです。 Railsでは、webリクエストはAction Packによって処理されます。 Action Packはコントローラーのパート(ロジックを遂行する)と、 ビューのパート(テンプレートをレンダリングする)の2つに仕事を分けます。 大概、Action Controllerはデータベースとのコミュニケーションと関わっていて、必要な時にはCRUD アクションの処理を行います。そしてAction View はそのレスポンスをコンパイルする役目を担っています。
Action View テンプレートは、HTMLと混ぜて、タグの中に埋め込みRubyを使って書かれています。 テンプレートと定型コード(boilerplate code)が雑然としないように、かなりの数のヘルパークラスがあり、 フォーム、日付、文字列の良くある振る舞いが予め用意されています。 アプリケーションの進化に合わせ、独自のヘルパ—クラスを追加することも簡単にできます。
注意:
いくつかのAction Viewの機能はAction Recordに結びつけられています。しかし、それはAction ViewがActive Recordに 依存しているということを意味するわけではありません。Action Viewは独立したパッケージで、 どんな種類のRubyライブラリとでも一緒に使うことができます。
Action Packについて:アクションパック- リクエストからレスポンスまで
2 RailsでAction Viewを使う。
それぞれのコントローラーはapp/viewディレクトリ内に関連付けられたディレクトリを持ち, ディレクトリはそのコントローラーのビューを作成するためのテンプレートファイルを持ちます。 それらのファイルはそれぞれのコントローラーアクションから生じるビューを表示するのに使われます。
それでは、scaffoldジェネレーターを用いて新しいリソースを作成したとき、デフォルトでは Railsは何をするのか見てみましょう。
$ rails generate scaffold post [...] invoke scaffold_controller create app/controllers/posts_controller.rb invoke erb create app/views/posts create app/views/posts/index.html.erb create app/views/posts/edit.html.erb create app/views/posts/show.html.erb create app/views/posts/new.html.erb create app/views/posts/_form.html.erb [...]
Railsのビューには命名規約があります。上に見るように、大概、ビューは関連したコントローラーのアクション名と同じ 名前を持ちます。例えば、posts_controller.rbのindexコントローラーアクションはapp/views/posts内で index.html.erb というビューファイルを使います。クライエントに戻される完全なHTMLは、
- このERBファイル
- それを包むレイアウトテンプレート
- ビューが参照するすべてのパーシャル
を組み合わせたものから成ります。 この後、ガイドではそれら3つの構成要素について詳しく見ていきます。