9/4　今日の学習内容～ルーティングについて、アクションを作りながら学習～

###今日の学習内容
***
今日はルーティングについてアクションを作りながら学習していきました。

[昨日の学習内容](http://qiita.com/shouxuohs/items/2f932dc8a01d0f38fdaa)でも触れた**ルーティング**は、リクエストされたURLのパスから、コントローラとアクションを選択することですね(-ω-)/

ルーティングの設定は``routes.rb``という、``config``フォルダの下にあるファイルで行います。

![cloud9_15.png](https://qiita-image-store.s3.amazonaws.com/0/137880/e772da1a-9306-8f5a-1382-4525b551218d.png)

``Rails.applicatin.routes.draw do ~ end``の中にルーティングのコードを書いていくわけですね( ..)φメモメモ

私の``routes.rb``ファイルには、すでに[8/27の学習内容](http://qiita.com/shouxuohs/items/da910b3ce72505ffffb1)で作った、アクション``index``とパスの``/index``を結びつけるルーティングの設定が書いてあります。


今日はここに``about``というアクションを追加していきます。

####``about``アクションの追加
***

![cloud9_16.png](https://qiita-image-store.s3.amazonaws.com/0/137880/0fc305a7-5ded-9b6b-5bb1-b5020c68d2d3.png)

``top_controller.rb``に``def about end``とすることで、中身が空の**``about``アクションを追加**できます。
ちなみに、先に書いていた``index``には二つの[インスタンス変数](http://qiita.com/kansiho/items/f5ab9b6eeb990e6af327)（``@message``のように``@``から始まる変数）があり、これをビュー側で参照し、HTMLに埋め込んだのち、ブラウザーにレスポンスとして返されます。

[昨日の学習](http://qiita.com/shouxuohs/items/2f932dc8a01d0f38fdaa)で簡単に説明してますので、お時間のある方はこちらもどうぞ(-ω-)/
 
>[9/3　今日の学習内容～Railsのリクエスト処理の流れについて学習～](http://qiita.com/shouxuohs/items/2f932dc8a01d0f38fdaa)

####``about``アクションのルーティング
***
先程申し上げましたように、``about``アクションのルーティングをするためには、``config``フォルダ下の``routes.rb``ファイル内にある、``Rails.applicatin.routes.draw do~end``の中にルーティングのコードを書いていくわけですね(-ω-)/

下記のように書いてみてください↓

![cloud9_17.png](https://qiita-image-store.s3.amazonaws.com/0/137880/49c1b94f-f27c-b5b1-7339-31123d7bd4c5.png)

####HTMLに表示する内容を記述
***
まず、``about.html.erb``というファイルを``view/top``の下に作ってください。
以前作った、``top/index``と同じように、``erb``拡張子の付いたファイルになります。
拡張子の``.erb``はRailsの**ビューのためのテンプレートファイル**であることを示しているわけですね。
![cloud9_18.png](https://qiita-image-store.s3.amazonaws.com/0/137880/be463690-986e-8305-576e-d05adc158e37.png)

私は[改訂３版基礎Ruby on Rails](https://www.amazon.co.jp/dp/4844338153)の内容に従って進めているので、次のように``about.html.erb``の中身を記述しました。

![cloud9_19.png](https://qiita-image-store.s3.amazonaws.com/0/137880/ccc966d9-53b5-b23d-df35-20a0b6a223a3.png)



ちなみにですが、どのファイルも``Ctrl ― s``で保存をしておくことをお忘れなく(´-ω-`)
私はすっかり忘れていましたので(笑)
　
####さいごにチェック！
***
ちゃんとルーティングが出来ていれば、これで表示されるはずです(@_@。
ちゃんと試してみましょう(-ω-)/
ターミナルに``rails s -b $IP -p $PORT``と入力してください。
このとき、ちゃんと``cd``コマンドでアプリケーションのディレクトリ（私の場合はasagaoですね）に移っておかなければ実行できませんので、ご注意ください<(_ _)>

``rails s -b $IP -p $PORT``を実行すると、ズラズラっと文字列が流れてゆきますが、その中から``http``から始まるURLをクリックしてOpenしてください。（赤枠内ですね）

![cloud9_21.png](https://qiita-image-store.s3.amazonaws.com/0/137880/7ac0960c-6312-6c7c-8b40-ef4ad8f535c6.png)

最初に表示されるのは、以前作成した``index``なので、今回ルーティングをした``about``を表示させるために、URLの欄に**``/about``を付け加えて**ください(-ω-)/

Enterを押すと...

![cloud9_20.png](https://qiita-image-store.s3.amazonaws.com/0/137880/666ba433-e169-9c52-7492-e5df3dc19d8f.png)


**やりました！しっかりと表示されましたね(*‘∀‘)**

　
###あとがき
***
最初書いてた時は、なにをしているのか分からなかったわけですが、少しずつでも分かるようになると楽しいですね(*‘∀‘)

[昨日の学習](http://qiita.com/shouxuohs/items/2f932dc8a01d0f38fdaa)をまとめるときに、自分で図を書いてみたことが、MVCを理解することに一番役立ったのではないかと思います(笑)
MVCについていまいち分からないという方は、鉛筆で簡単にでもいいので、ご自身で**図を書いてみる**ことをおすすめ致します(-ω-)/

ここまで読んでいただきありがとうございましたm(__)m

もし、間違いがあれば指摘して頂けると嬉しいです(*‘∀‘)
　
###参考にさせていただいたサイトなど
***
- [改訂３版基礎Ruby on Rails](https://www.amazon.co.jp/dp/4844338153)
- [cloud9](https://c9.io)
- [Ruby 変数のスコープ](http://qiita.com/kansiho/items/f5ab9b6eeb990e6af327)
- [Ruby 2.0.0 リファレンスマニュアル　変数と定数 (Ruby 2.0.0)](http://docs.ruby-lang.org/ja/2.0.0/doc/spec=2fvariables.html)