:successend言葉で表すと「Homeページのテスト。すれば、リクエストに対するレスポンスは[成功]になるはず」となります。テストを書くサイクルに入る前に、まずは現在のテストスイートをそのまま実行して、問題なくパスすることを確認しておきましょう。テストの実行には次のようにrailsコマンドを使います。reportersを追加する必要がありますが、見やすくなるだけで必須ではありません)。ところで、テストの実行にはある程度時間がかかります。これには2つの要因が絡んでいます。Springサーバーを起動してRails環境を事前読み込みするのに時間がかかる。これは最初の1回だけです。(2番目の要因については、3.6.2で紹介するGuardを導入することで改善できます)。(パスさせる)」「必要ならリファクタリングする」のように進みます。REFACTOR」と呼ぶこともあります。これに従って最初のサイクルを完了させましょう。するのは3.3.3、リファクタリングは3.4.3で行います9。サイクルの記念すべき第一歩はAboutページ用の失敗するテストを書くことです。3.13を参考にすれば、正しいテストコードを何となく想像できると思います。3.15のハイライト行を見ると、他のHomeページ用テストやHelpページ用テストとほとんど同じであることがわかります。違いは「home」や「help」の部分が「about」に変わっている点だけです。テストを実行すると、期待どおり失敗します。ようにコードを書くことで、Aboutページを実装します。失敗したテストのエラーメッセージをもっと詳しく見ていきましょう。`static_pages_about_url'このエラーメッセージによれば、「AboutページへのURLが見つからない」とあります。このメッセージをヒントに、ルーティングファイルを修正してみましょう。3.18のハイライト行では、/static_pages/aboutというURLに対してGETリクエストが来たら、StaticPagesコントローラのaboutアクションに渡すようRailsに指示しています。この結果、自動的に次のようなヘルパーが使えるようになります。static_pages_about_url修正が終わったらテストスイートをもう一度実行してみましょう。今度はメッセージが少し変わりました。StaticPagesControllerこのエラーメッセージから、「StaticPagesコントローラにaboutアクションがない」ということがわかります。endend今度はどうでしょう。redですが、エラーメッセージがまた少し変わりました。variant.今度はテンプレートがないようです。Railsでは、テンプレートとはすなわち「ビュー」を指します。3.2.1で説明したように、homeというアクションはhome.html.erbというビューに関連付けられます。このビューはapp/views/static_pagesディレクトリにあるので、ここにabout.html.erbというファイルを作ればよさそうです。メニューが表示されます。エディタの[File]メニューでファイルを作成して、このディレクトリに保存しても構いません。個人的にはUnixのtouchコマンドでファイルを作成するのがカッコいいと思います。(クラウドIDEをご利用の場合はtouchコマンドでファイル作成後、1.3.1のようにファイルツリーを更新する必要があります)。3.21のとおりに内容を書き換えます。greenになるはずです。greenになったので、安心してコードをリファクタリングできるようになりました。アプリケーションの開発が進むと、コードのどこからともなく「腐敗臭」が漂い始めます。コードや記法の統一が崩れて読みづらくなる、クラスやメソッドが何百行にも膨れ上がって読む気を削がれる、なぜこのコードがここにあるのか最早誰もその理由を思い出せなくなる、同じコードがあちこちにコピペされて少しずつ書き換えられ手に負えなくなる、などです。コンピュータにしてみればどんなに汚らしいコードであろうと、そこにあるがままに実行するだけですが、人間はそういうわけにはいきません。こまめにリファクタリングを繰り返してコードを常にすみずみまで美しくコンパクトに保ち、他の開発者や未来の自分の開発意欲を阻喪することのないようにしなければなりません。このサンプルアプリは生まれたてなので、今のところリファクタリングの必要な箇所はほぼどこにも見当たりません。「一匹いれば30匹いると思え」、コードの腐敗臭はどんな小さな隙間からも忍び寄ってきます。こまめなリファクタリングの習慣をできるだけ早いうちに身につけるためにも、少々無理やりに3.4.3から始めることにします。動的なページ静的なページのアクションやビューをいくつか作成できたので、今度はそれをほんの少しだけ動的にしてみましょう。ページの内容に応じて、ページのタイトルを自ら書き換えて表示するようにします。タイトルを自動で変えるぐらいのことが真の動的コンテンツと呼べるかどうかは議論の余地があると思いますが、いずれにしろこのページは、第7章で紹介する本格的な動的コンテンツの基礎となります。ここでの目標は、Homeページ、Helpページ、Aboutページをそれぞれ編集し、最終的にページごとに異なるタイトルを表示することです。ここではビューの<title>タグの内容を変更します。多くのブラウザでは、titleタグの内容をブラウザウィンドウの上部にウィンドウタイトルとして表示します。おいても重要な役割を果たします。REFACTOR」のサイクルをすべて行うことにします。(REFACTOR)。App」という形式に変更します。実行すると、レイアウトもデフォルトで作成されます。ここでは学習のため、一時的に次のようにファイル名を変更します。layout_file普通は、実際のアプリケーション開発時に上のような操作を行うことはありません。ここでは、レイアウトファイルの役割をよりわかりやすく説明するために、最初にレイアウトファイルを無効にしています。(Red)ページタイトルを追加する前に、HTMLについて今一度おさらいしておきましょう。Dangerousを参照)。3.23の構造には次の3つが含まれています。ブラウザに対して宣言します10。