重要なポイントだと思った部分や感想を記載していきます。
- コントローラーの作成と削除
- RED / GREEN / REFACTOR
- application.html.erbについて
- 3.4.3 レイアウトと埋め込みRuby (Refactor)の演習問題の解答
- 3章まとめ
コントローラーの作成と削除
コントローラーの作成は今まで散々おこなってきましたが、
& rails g controller StaticPages home help
でしたね。
上記コマンドによって、
- static_pages_controller
- help.html.erb
- home.html.erb
の3ファイルが作成されます。
ここで、ファイルの名称などを誤って作成してしまった場合は
削除できるコマンドもあります。
$ rails destroy controller StaticPages home help
これで綺麗に削除されます。
RED / GREEN / REFACTOR
Railsではテストコードを書く・・・RED
REDを解消するコードを記述する・・・GREEN
コードを綺麗に保つ・・・REFACTOR
というように呼ばれるようです。
application.html.erbについて
このファイルはrails gコマンドによって作成される重要なファイルです。
デフォルトで下記のようなコードがあるかと思います。
<body> <%= yield %> </body>
これは、
レイアウトを使う際に、/static_pages/home等にアクセスすると、home.html.erbの内容がHTMLに変換され、<%= yield %>の位置に挿入されるものだと理解しておきましょう。
3.4.3 レイアウトと埋め込みRuby (Refactor)の演習問題の解答
下記私の解答を載せておきます。
sample_app/test/controllers/static_pages_controller_test.rb
に下記コードを追加します。
~~~ test "should get contact" do get static_pages_contact_url assert_response :success assert_select "title", "Contact | #{@base_title}" end ~~~
そして、コントローラーにcontactメソッドを追加します。
sample_app/app/controllers/static_pages_controller.rb
class StaticPagesController < ApplicationController def home end def help end def about end def contact end end
最後にルーティングを追加します。
sample_app/config/routes.rb
Rails.application.routes.draw do get 'static_pages/home' get 'static_pages/help' get 'static_pages/about' get 'static_pages/contact' # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html root 'application#hello' end
これでテストもGREENになり、アプリも正しく表示されるはずです。
3章まとめ
この章でもゼロからアプリを作成しました。
今回は静的なページ(HTMLが主体)の作成および、テスト方法についての内容が多かった印象です。
(railsのコードなどには深く触れませんでした)
ここまでは特につまづくこともなく進められていますが、はやり仕事が入ると進捗が悪くなってしまいますね・・・。
今月中に終われるように頑張ります。
例のごとく、3章終了時点のコードをGithubにあげておきますので、よければ参考になさってください。