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

Ruby on Rails入門
Ruby on Rails入門

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

   コントローラはユーザからのリクエストの受け口であり、アプリケーションの処理の中心的な役割を果たします。モデルと協調してビューに結果を渡します。

   アプリケーション「アドレス帳」のコントローラは、ContactsControllerクラス(app/controllers/contacts_controller.rb)1つだけです。このクラスにすべてのアクションが定義されています。

   リスト3は、ContactsControllerクラスに定義されたeditアクションです。editアクションでは、ビューで使用するアドレスカードの情報をデータベースより取得し、@contactに格納しています。

リスト3:editアクション
def edit
   @contact = Contact.find(params[:id])
end

   @からはじまる変数はインスタンス変数であり、格納した値はビューで参照することができます。先ほど取り上げた編集画面のビュー(リスト2)を見てみましょう。このインスタンス変数が参照されていることがわかります。


検索機能を追加する

   ここからはアプリケーション「アドレス帳」に検索機能を追加しながら、Railsの開発方法を説明していきます。

   今回実装する検索機能は、一覧表示の上部に検索キーワードを入力するテキストフィールドとSearchボタンです(図3)。ここに入力されたキーワードを使ってアドレス帳に保存されてある名前に対して前方一致検索を行います。

検索機能を追加した一覧表示画面
図3:検索機能を追加した一覧表示画面


ビューの変更

   リスト4は「検索キーワードを入力するためのフォーム(1)」と「検索の絞込みを解除し、すべてのアドレスを表示するためのリンク(2)」を追加した一覧表示のビューです。リスト4の白い記述が追加した箇所となります。

リスト4:app/views/contacts/list.rhtml(一覧表示画面)
<h1>Listing contacts</h1>

<%= start_form_tag :action => 'search' %> <!-- (1) -->
   <%= text_field :contact, :name, :value => @keyword %>
   <%= submit_tag 'Search' %>
<%= end_form_tag %>


(省略)

<%= link_to 'New contact', :action => 'new' %>
<%= link_to 'All contacts', :action => 'list' if @keyword %> <!-- (2) -->

   ここでもいくつかのヘルパーメソッドが登場しています。テキストフィールドには「text_field」、サブミットボタンには「submit_tag」、リンクには「link_to」というヘルパーメソッドが使われています。

前のページ  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

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