3rdRailによるRailsプログラミング入門

第7回 Controllerクラスの実装と機能テスト(後編)

富田 陽介
Banana Systems株式会社

2009/8/21

newメソッドに対応するビューファイルの準備

 FavoritesControllerクラスの実装が終わったら、ここで実装したnewメソッドに対応するビューを作成しておきましょう。

 ここでは、先にControllerクラスの機能テストを行うことが目的ですので、ビューの中身を作る必要はありません。ファイルだけ作成しておけばOKです。

 [Railsエクスプローラー]−tsubuyakiプロジェクト−[コントローラー]−Favoritesを展開し、[ビュー]を右クリックして、[Railsビューの新規作成]を選択します。

画面2 Railsビューの新規作成メニューを開く
Railsビューの新規作成メニューを開く

するとRailsビュー新規作成ウィザード画面が表示されます。

画面3 Railsビュー新規作成ウィザード
Railsビュー新規作成ウィザード

 このウィザードでは、作成するビューの名称を指定します。ここでは、画面3のとおり、ビュー名欄にnewとだけ書いて[完了]ボタンを押してください。これで、FavoritesControllerのnewアクション用のビューが作成されます。

FavoritesController機能テスト実行確認

 それでは、再度機能テストを実行し、テストがすべて通ることを確認しましょう。

 進捗バーがグリーン表示になっていれば、FavoritesControllerの実装は完了です。続いて、ビューの実装に入っていきましょう。

FavoritesControllerが使用するビューの実装

 「お気に入り」の新規登録画面では、ユーザーと「ひとこと」を指定した形で、createメソッドへ新規登録リクエストを送信することになります。「ひとこと」は一覧画面でリンクをクリックした際に引き継いできているものとし、ここでは、以下のようなテンプレートで、ユーザーを選択して送信するようなフォームを用意します。

●new.index.erb
<h1>お気に入り登録</h1>

<% form_for(@favorite) do |f| %>
  <%= f.error_messages %>

  <p>
    ユーザー:<%= collection_select(:favorite, :user_id, @users, :id, :name) %>
  </p>
  <p>
    ひとこと:<%=h @hitokoto.hitokoto %>
    <%= hidden_field_tag :hitokoto_id, @hitokoto.id %>
  </p>
  <p>
    <%= f.submit "気に入った!" %>
  </p>
<% end %>

<%= link_to 'ひとこと一覧に戻る', hitokotos_path %>

 ここでのビューは、先ほどのHitokotosController#newに似ているのですが、今回はhidden_field_tagにより、前の「ひとこと」一覧画面から渡された「ひとこと」IDをhiddenパラメータとして埋め込んでいます。

 以上でFavoritesControllerの開発イテレーションは完了です。

◇ ◆ ◇

 第5回から今回まで、Controllerクラスの開発ステップとして、Railsアプリケーションのリクエストからレスポンスの流れ、画面遷移の検討、リクエストURLとController/アクションメソッドの割り当てルール、Controllerクラスの実装、機能テストの実行、ビューの実装について紹介してきました。

 また、途中で3rdRailのテストスクリプトビューを用いたテスト状況のモニタリングや、ビューの新規作成ウィザード機能の利用についても紹介しました。

 Modelの実装(第2回〜第4回)に引き続き、かなり盛りだくさんの内容でしたが、これで、ひと通りのアプリケーション機能を実装したことになります。

 次回からは、3rdRailの持つリクエスト・モニタ機能やDOMインスペクター機能を紹介しながら、今回作成したアプリケーションの動作を確認していきたいと思います。

prev
4/4
 

Index
Controllerクラスの実装と機能テスト(後編)
  Page1
HitokotosControllerの本番コード実装
  Page2
HitokotosControllerが使用するビューの実装
  Page3
FavoritesControllerのアクションメソッド名の決定
FavoritesController機能テストを書き起こす
FavoritesControllerの本番コード実装
Page4
newメソッドに対応するビューファイルの準備
FavoritesController機能テスト実行確認
FavoritesControllerが使用するビューの実装
index 3rdRailによるRailsプログラミング入門

 Ruby/Rails関連記事
プログラミングは人生だ
まつもと ゆきひろのコーディング天国
 ときにプログラミングはスポーツであり、ときにプログラミングは創造である。楽しいプログラミングは人生をより実りあるものにしてくれる
生産性を向上させるRuby向け統合開発環境カタログ
Ruby on Rails 2.0も強力サポート
 生産性が高いと評判のプログラミング言語「Ruby」。統合開発環境を整えることで、さらに効率的なプログラミングが可能になる
かんたんAjax開発をするためのRailsの基礎知識
Ruby on RailsのRJSでかんたんAjax開発(前編)
 実はAjaxアプリケーション開発はあなたが思うよりも簡単です。まずはRuby on Railsの基礎知識から学びましょう
Praggerとnetpbmで作る画像→AA変換ツール
Rubyを使って何か面白いものを作ってみよう!
 一般的な画像をアスキーアートに変換するツールを作ってみる。さらに出力にバリエーションを持たせてみよう
コードリーディングを始めよう
Railsコードリーディング〜scaffoldのその先へ〜(1)
 優れたプログラマはコードを書くのと同じくらい、読みこなす。優れたコードを読むことで自身のスキルも上達するのだ
  Coding Edgeフォーラムフィード  2.01.00.91


Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

>

Coding Edge 記事ランキング

本日 月間