らくだ🐫にもできるRailsチュートリアル|3.2

3.6.1 minitest reporters

2019.05.24 らくだ🐫にもできるRailsチュートリアル|3.3から移動

masterブランチから移動する前に
テスト結果を見易くするために3.6.1に書いてあるこちらの設定をしておきます
(ブランチを移動しているようでしたらmasterブランチにcheckoutしておいてください)

/sample_app/test/test_helper.rb
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require "minitest/reporters"
Minitest::Reporters.use!
#上記の2行を追加します

class ActiveSupport::TestCase
  # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
  fixtures :all

  # Add more helper methods to be used by all tests here...
end

テスト結果に色が付くので見やすくなります

3.2 静的ページ

新しくブランチを作って作業していきます
(ところでブランチって作る?切る?←多分どっちでも)

ターミナル
(master) $ git checkout -b static-pages
Switched to a new branch 'static-pages'
(static-pages) $ 
#cloud9のターミナルだと()に現在のブランチ名が表示されていて便利

3.2.1 静的なページの生成

キャメルケースとは

CamelCase スペースを詰めて単語の頭文字を大文字にする表記
因みにスネークケース(snake_case)はスペースをアンダースコアに置き換えた表記
controller名はキャメルケースで表記
ターミナル
$ rails generate controller StaticPages home help
#homeアクションと helpアクションを持った StaticPagesコントローラを作成
Running via Spring preloader in process 11965
#以下自動生成されたファイルやコード
      create  app/controllers/static_pages_controller.rb
       route  get 'static_pages/help'
       route  get 'static_pages/home'
      invoke  erb
      create    app/views/static_pages
      create    app/views/static_pages/home.html.erb
      create    app/views/static_pages/help.html.erb
      invoke  test_unit
      create    test/controllers/static_pages_controller_test.rb
      invoke  helper
      create    app/helpers/static_pages_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/static_pages.coffee
      invoke    scss
      create      app/assets/stylesheets/static_pages.scss

Gitリポジトリに追加

ターミナル
$ git add -A
$ git commit -m "Add a Static Pages controller"
$ git push -u origin static-pages
#トピックブランチ(static-pages)をプッシュ 以降git pushでOK

自動生成されたファイルやコードの取り消し(削除)

自動生成されたファイルやコードは多岐にわたっているので
取り消す際は手動で削除するのではなくコマンドで削除する

$ rails generate controller StaticPages home help
$ rails destroy  controller StaticPages home help
#「generate」← →「destroy」
$ rails generate model User name:string email:string
$ rails destroy model User
#modelの自動生成を取り消す場合の引数は不要
$ rails db:migrate
$ rails db:rollback  #直前の変更を取り消す場合
$ rails db:migrate VERSION=0  #指定したversionまで戻る(0は最初の状態まで)

home アクションと helpアクション

/sample_app/config/routes.rb
Rails.application.routes.draw do
  get  'static_pages/home'
  #/static_pages/homeにアクセスがあった場合StaticPagesコントローラーのhomeアクションを実行
  get  'static_pages/help'
  #/static_pages/helpにアクセスがあった場合StaticPagesコントローラーのhelpアクションを実行
  root 'application#hello'
end

上記のルーティングに対応するコントローラーとアクションはこちら↓

/sample_app/app/controllers/static_pages_controller.rb
class StaticPagesController < ApplicationController
  def home
  end

  def help
  end
  #railsではアクションの中身が空白の場合、単に対応するviewを返す
  #対応するviewはこちら→/sample_app/app/views/static_pages
end

演習

Fooというコントローラを生成し、その中にbarとbazアクションを追加してみてください。
コラム 3.1で紹介したテクニックを駆使して、Fooコントローラとそれに関連するアクションを削除してみてください。

$ rails g controller Foo bar baz
Running via Spring preloader in process 17110
#以下、自動生成されたファイルやコード
      create  app/controllers/foo_controller.rb
       route  get 'foo/baz'
       route  get 'foo/bar'
      invoke  erb
      create    app/views/foo
      create    app/views/foo/bar.html.erb
      create    app/views/foo/baz.html.erb
      invoke  test_unit
      create    test/controllers/foo_controller_test.rb
      invoke  helper
      create    app/helpers/foo_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/foo.coffee
      invoke    scss
      create      app/assets/stylesheets/foo.scss
#controllerやviewファイル、routesの中身もチェック
$ rails d controller Foo bar baz
Running via Spring preloader in process 17203
      #以下、削除されたファイルやコード
      remove  app/controllers/foo_controller.rb
       route  get 'foo/baz'
       route  get 'foo/bar'
      invoke  erb
      remove    app/views/foo
      remove    app/views/foo/bar.html.erb
      remove    app/views/foo/baz.html.erb
      invoke  test_unit
      remove    test/controllers/foo_controller_test.rb
      invoke  helper
      remove    app/helpers/foo_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
      remove      app/assets/javascripts/foo.coffee
      invoke    scss
      remove      app/assets/stylesheets/foo.scss

3.2.2 静的なページの調整

本文ママ

まとめとか感想

次からテストなので嵐の前の静けさ感ある

らくだ🐫にもできるRailsチュートリアルとは

「ド」が付く素人のらくだ🐫が勉強するRailsチュートリアルの学習記録です。
自分用に記録していますが、お役に立つことがあれば幸いです。

調べたとはいえらくだ🐫なりの解釈や説明が含まれます。間違っている部分もあるかと思います。そんな所は教えて頂けすと幸いなのですが、このブログにはコメント機能がありません💧お手数おかけしますがTwitterなどでご連絡いただければ幸いです