newメソッドに対応するビューファイルの準備
FavoritesControllerクラスの実装が終わったら、ここで実装したnewメソッドに対応するビューを作成しておきましょう。
ここでは、先にControllerクラスの機能テストを行うことが目的ですので、ビューの中身を作る必要はありません。ファイルだけ作成しておけばOKです。
[Railsエクスプローラー]−tsubuyakiプロジェクト−[コントローラー]−Favoritesを展開し、[ビュー]を右クリックして、[Railsビューの新規作成]を選択します。
するとRailsビュー新規作成ウィザード画面が表示されます。
このウィザードでは、作成するビューの名称を指定します。ここでは、画面3のとおり、ビュー名欄にnewとだけ書いて[完了]ボタンを押してください。これで、FavoritesControllerのnewアクション用のビューが作成されます。
FavoritesController機能テスト実行確認
それでは、再度機能テストを実行し、テストがすべて通ることを確認しましょう。
進捗バーがグリーン表示になっていれば、FavoritesControllerの実装は完了です。続いて、ビューの実装に入っていきましょう。
FavoritesControllerが使用するビューの実装
「お気に入り」の新規登録画面では、ユーザーと「ひとこと」を指定した形で、createメソッドへ新規登録リクエストを送信することになります。「ひとこと」は一覧画面でリンクをクリックした際に引き継いできているものとし、ここでは、以下のようなテンプレートで、ユーザーを選択して送信するようなフォームを用意します。
<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インスペクター機能を紹介しながら、今回作成したアプリケーションの動作を確認していきたいと思います。
4/4 |
Index | |
Controllerクラスの実装と機能テスト(後編) | |
Page1 HitokotosControllerの本番コード実装 |
|
Page2 HitokotosControllerが使用するビューの実装 |
|
Page3 FavoritesControllerのアクションメソッド名の決定 FavoritesController機能テストを書き起こす FavoritesControllerの本番コード実装 |
|
Page4 newメソッドに対応するビューファイルの準備 FavoritesController機能テスト実行確認 FavoritesControllerが使用するビューの実装 |
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) 優れたプログラマはコードを書くのと同じくらい、読みこなす。優れたコードを読むことで自身のスキルも上達するのだ |
|
- プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る - エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る - VBAにおけるFileDialog操作の基本&ドライブの空き容量、ファイルのサイズやタイムスタンプの取得方法 (2017/7/10)
指定したドライブの空き容量、ファイルのタイムスタンプや属性を取得する方法、FileDialog/エクスプローラー操作の基本を紹介します - さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは (2017/7/6)
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり
|
|