第3回:アーキテクチャと検索機能の追加 (2/4)

Ruby on Rails入門
Ruby on Rails入門

第3回:アーキテクチャと検索機能の追加
著者:DTS  五座 淳一   2006/6/7
前のページ  1  2   3  4  次のページ
モデル

   Railsのモデルはテーブル名を単数形にした名前という規約があり、その規約に従うことでモデルとテーブルが関連付けられます(設定よりも規約というRailsの哲学は、「第1回:Railsが注目されている理由」を参照してください)。

   Scaffoldで生成されたモデル「app/models/contact.rb」を見てみましょう。そこにはActiveRecord::Baseクラスを継承したモデルクラスの定義しかありません。もちろん設定ファイルは存在しません。たったこれだけのコードで、カラムと同名のアクセサが提供され、テーブルの情報を扱うために必要となる多くのメソッドが動的に追加されます。

リスト1:app/model/contact.rb(Contactモデル)
class Contact < ActiveRecord::Base
end


ビュー

   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の関係をより頑強なものにしています。

前のページ  1  2   3  4  次のページ


株式会社DTS  五座 淳一氏
著者プロフィール
株式会社DTS  五座 淳一
技術部所属。入社以来、交換機や携帯電話、Webシステムなど様々な開発を担当する。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。


INDEX
第3回:アーキテクチャと検索機能の追加
  Scaffold
モデル
  コントローラ
  コントローラの変更
Ruby on Rails入門
第1回 Railsが注目されている理由
第2回 すぐできるアプリケーション作成
第3回 アーキテクチャと検索機能の追加
第4回 Railsでテストをしてみよう
第5回 Ajaxアプリケーションの作成
第6回 プラグインでさらに生産性アップ
第7回 Linux環境で動作させよう
徹底比較!!Ruby on Rails vs Javaフレームワーク
第1回 O/Rマッピング
第2回 JSFとRailsで比較(前編)
第3回 JSFとRailsで比較(後編)
第4回 DIコンテナとの比較
第5回 テストフレームワーク
第6回 RailsとGrailsの比較(前編)
第7回 RailsとGrailsの比較(後編)

人気記事トップ10

人気記事ランキングをもっと見る