この記事について…
普段はRuby on Railsと無縁なプログラマなんですが、今更ながら面白そうという単純な理由からRuby on Rails Tutorialをやってみようと思い立ちました。今回は前回の記事の続きで第3章をやっていきます。
尚、Rails 5.1に対応した第4版を用いて、かつVagrantを使用した環境で進めていきます。
第3章 ほぼ静的なページの作成
この第3章からは共通のアプリケーション(sample_app)をカスタマイズしていきます。毎度お馴染みのrails new
コマンドを利用してアプリケーションを生成します。
前回変数名の単数形・複数形使い分けの話を少ししましたが、他にもコントローラ名はキャメルケース、ファイル名はスネークケースで書くという慣習があるようです。誰が見ても一意に理解できる記法というのは好感が持てますが、実現場でも皆さま守られていらっしゃるのでしょうか?
今回はチュートリアルということもありますが、指示の通り忠実に記法を守って進めていきたいと思います。
さて、第2章ではrails generate scaffold
を駆使しましたが、第3章では次のコマンドを使用します。
rails generate controller ControllerNames actionname ...
scaffold
ほどは自動生成されるファイルが少ない為、内容は理解しやすかったです。
また、rails generate
をはじめとしたコマンドには以下の短縮形があります。覚えておきたいですね。
# rails server
$ rails s
# rails console
$ rails c
# rails generate
$ rails g
# rails test
$ rails t
# bundle install
$ bundle
今回はRubyの「DRY」(Don't Repeat Yourself)という原則とテストの書き方を上手く組み合わせて、「まずテストを書く」「コードの繰り返しを恐れず動くものを作る」「徐々に処理の共通化を行う」という流れで学習を行いました。普段技術者として働いている自分はもちろん、初学者でもわかりやすく読み進めることができるんじゃないかと思います。チュートリアルの完成度の高さを感じました。
最後に、第3章で使ったGitコマンドでチュートリアル本文に記載のないものの備忘録。
# 演習をcommitしちゃったんで戻す
git reset --hard HEAD^
# helloアクション追加前のファイルを戻す
git checkout <ハッシュ値> .\app\controllers\application_controller.rb
# masterにstatic-pagesをmergeするときfast-forwardしないようにする(コミットログを見易くする為)
# ⇒ --no-ff オプションを merge 時に付ける
git checkout master
git merge --no-ff static-pages
# 不要になったstatic-pagesを削除
git branch -d static-pages
# リモートリポジトリに残っているstatic-pagesを削除
# ⇒ --delete オプションを push 時に付ける
git push --delete origin static-pages
# git branch -r したときにリモートで削除済のstatic-pagesが表示されるのを消す
# ⇒ --prune オプションを fetch 又は pull 時に付ける
git fetch --prune
それでは、次回 第4章から再開したいと思います。