RailsのビューにはERbというテンプレートエンジンが採用されています。このテンプレートエンジンを使うことでHTMLの一部に「<% %>」と「<%= %>」というタグを使って、Rubyスクリプトを埋め込むことができます。
同様の役割を果たすJSPを使ったことがある方は馴染みやすいのではないでしょうか。
Railsのビューのもう1つの特徴として、通常のHTMLタグの代わりにヘルパーメソッドが頻繁に使われます。リスト2の編集画面のビューを見てみましょう(拡張子はhtmlではなく、rhtmlであることに注意してください)。
リスト2:app/views/contacts/edit.rhtml(編集画面)
<h1>Editing contact</h1>
<%= start_form_tag :action => 'update', :id => @contact %>
<%= render :partial => 'form' %>
<%= submit_tag 'Edit' %>
<%= end_form_tag %>
<%= link_to 'Show', :action => 'show', :id => @contact %> |
<%= link_to 'Back', :action => 'list' %>
通常のformタグではなく、「start_form_tag」や「end_form_tag」というヘルパーメソッドが記述されています。ヘルパーメソッドを使うことでコントローラやモデルとのパラメータの受け渡しが簡単に行えるようになっています。
ビューを支援するヘルパーメソッドの仕組みは、Railsで提供されているヘルパーメソッド以外にも独自に定義することができ、ビューとロジックを簡単に切り離せるという利点を持っています。このヘルパーメソッドがMVCの関係をより頑強なものにしています。
|