Ruby on Rails チュートリアル 第3章 まとめ
目次
- 3.1 セットアップ
- 3.2 静的ページ
- 3.3 テストから始める
- 3.4 少しだけ動的なページ
- 3.5 最後に
- 3.6 高度なセットアップ
- 3.X 感想とか
3.1 セットアップ
- アプリケーションの生成~herokuのデプロイまで
1章・2章と同じ。 - 困ったこと
2章の時と同じだが、やっぱりherokuコマンドがない。
ググると下とか出てきたけど解決ならず・・・
https://forums.aws.amazon.com/message.jspa?messageID=822444
3.2 静的ページ
ブランチの作成
git checkout -b static-pagescontrollerの作成
rails generate controller StaticPages home help
controller名はキャメルケース!- 作成されたものの確認
3.3 テストから始める
自動生成されたテストの実行!(green)
rails test / rails t
(テストファイルの static_pages_home_url とルーターの'static_pages/home'が紐づいている(?)のが気持ち悪い)自動生成されたテストの追加(aboutページの追加)(red)
当然失敗
→ルートを追加
→でも失敗
→controllerにアクションを追加
→また失敗
→viewを追加
→成功!!
3.4 少しだけ動的なページ
- 勉強用にapplication.html.erbを移動
- タイトルのテスト追加(red)
各ページに普通のHTML記載 - テストのリファクタリング(red)
共通部分をsetupメソッドに統一
DRYの原則! 各ページの統一
共通部分をまとめるための下準備
<% provide(:title, "Home") %>
<%= yield(:title) %>
テストで確認application.html.erbをもとの位置に戻す!
レイアウトファイル(application.html.erb)の編集
各ページの編集 DRYに!
テストで確認ルートページの変更
ルートページのテスト追加!
3.5 最後に
- gitにコミットとか
3.6 高度なセットアップ
- テスト結果の見栄えをよく
test_helper.rbに以下追加
require "minitest/reporters"
Minitest::Reporters.use! - 自動テスト
Guardを使った- Guard初期化
bundle exec guard init - tmuxのインストール(Guardの通知を有効にするため)
実はテスト実行の時点でエラーが発生していて、ググったらインストールが必要とのことでもうやってた。
sudo yum install -y tmux Guardfileのカスタマイズ
guard :minitest, spring: "bin/rails test", all_on_start: false doSpringとGitの競合を防ぐために.gitignoreファイルにspring/を追加
- 自動テスト開始!!
bundle exec guard
Guardfileの中は監視対象と対するテストを書いてある感じ。
監視対象とテストは正規表現で書いてあったりしてファイル名をそろえとくといい感じだった。
まあ普通そろえるか。 - Guard初期化
3.X 感想とか
テストいいね!安心感が違うな。 どうなっていて欲しいかを一回書けば、覚えておかなくていいのはすごい楽。