0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsチュートリアルメモ - 第2章・第3章

Last updated at Posted at 2020-01-01

メモ目次はこちら

Railsチュートリアル第2章はこちら
Railsチュートリアル第3章はこちら

2.1 アプリケーションの計画

新しくrails newでtoy_appを作成する。
rails newすると、git initも実行されるようで.gitディレクトリがtoy_app配下に作成される。

tree
.
└── environment
    ├── hello_app
    └── toy_app
        └──.git

2.2 Usersリソース

RailsのscaffoldコマンドでUsersリソースを手軽に作成する実演の章

rails generate scaffold User name:string email:string
rails db:migrate
rails server

rails generateコマンドの素晴らしいところは、一発でmodelもviewもcontrollerも全部作成して、routes.rbまで追記してくれるところ。
ここからRubyに関する解説も入ってくる。

ポイント

  • @記号で始まる変数をRubyではインスタンス変数と呼ぶ
  • Railsのコントローラ内で宣言したインスタンス変数はビューでも使えるようになる

2.3 Micropostsリソース

twitterをイメージしたアプリを作るため、Usersリソースと関連付けてMicroposts(投稿)リソースを作成する。
Rubyの継承についての解説がメイン。

ポイント

  • rails consoleでREPLを起動できる
  • Railsのコントローラは必ずApplicationControllerを継承している

2.4 最後に

割愛

3.1 セットアップ

割愛

3.2 静的ページ

ここからはscaffoldを使わずにページを作成していく。

rails generate controller StaticPages home help

上記を実行すると、コントローラーとしてstatic_pages_controllerが作成されhomeメソッドとhelpメソッドが、ビューとしてhomeとhelpが作成される。モデルは作成されない。routes.rbには自動追記してくれる。

3.3 テストから始める

TDD(テスト駆動開発)についての解説と簡単な実演の章。
Red=>Green=>Refactoringのルールに則って開発を進める。

3.4 少しだけ動的なページ

少しだけ発展的なTDDの章。

ポイント

  • 「DRY」(Don’t Repeat Yourself: 繰り返すべからず)
  • 「埋め込みRuby」(Embedded Ruby)
  • provideメソッドとyeildメソッド

3.5 最後に

割愛

3.6 高度なセットアップ

テスト駆動開発を便利にしてくれるライブラリの紹介。

  • minitest reporters:コンソールに表示されるテスト結果に色を付ける
  • Guard:ファイル編集保存時にテストを自動実行してくれる
    • bundle exec guardで起動させておくと、ファイル保存時に自動でrails testを実行してくれる。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?