Ruby on Railsチュートリアル第6版の第1章のまとめです。
個人的に気になったところ、難しかったところ、わからなかったところを中心にまとめていきます。基本的に自分の理解を助けることと、復習しやすくすることを目的とした記事ですが、今Ruby on Railsチュートリアルをやってる人に役立つ情報があるかもしれません。
僕の学習の順番は、1周目はRailsチュートリアル第4版(Rails5.1)を使い、2周目で第6版を使うという感じになってます。これは1周目が終わったところで第6版のWebテキスト版がリリースされたからです。
ちなみに、2周目は解説動画を購入してやってます。オススメです。
第1章 ゼロからデプロイまで
Ruby on Railsチュートリアルの第1章は簡単なRailsを使って簡単なアプリを作り、デプロイするまでとなってます。
そもそも「デプロイって何?」という感じですね。ググってみて最初に出てきたweblioにはこんな感じに書かれてます。
デプロイ(英:deploy)とは、「配置する」「配備する」「展開する」といった意味の英語の動詞です。日本語の中では、ソフトウェア開発の工程のうち、開発した機能やサービスを利用できる状態にする作業を指す語として用いられています。
weblio
Railsチュートリアル第1章では最後にデプロイするわけですが、Web上に公開することをしてるので、そういう作業をデプロイと呼ぶという理解でいいのかなと思います。おそらく。
1. 1 前提知識
RailsチュートリアルはProgateと提携してるらしく、Progateの「Web開発パス(Ruby on Rails)」から始めることをオススメしてます。
僕もProgateのWeb開発パスを先にやりましたが、いきなりRailsチュートリアルを始めると挫折しやすいと思うので、先ずはProgateから始めることを強くおススメします。
Web開発パスは「HTML & CSSコース」、「Rubyコース」、「Ruby on Railsコース」という構成になってますが、Railsチュートリアルをやるには他にも追加でやっといた方がいいコースがあります。
Railsチュートリアルにも書いてありますが、下の6コースです。
- 「Command Lineコース」
- 「Gitコース」
- 「Sassコース」
- 「JavaScriptコース」
- 「jQueryコース」
- 「SQLコース」です。
やることがたくさんあって嫌になってしまうかもしれませんが、とりあえずWeb開発パスをやって、Command LineコースとGitコースをさらっとやっておけば、Railsチュートリアルに入りやすいと思います。
他のはRailsチュートリアルの中で学ぶか、必要になったときにProgateに戻るかすれば、最初はOKだと思います。
Ruby on Railsチュートリアルを含めたRuby on Railsの学習順序は、「Ruby on Railsの学習ロードマップ」にまとめてあります。
1.2 さっそく動かす
Ruby on Railsに限らず、プログラミングをやるには開発環境が必要です。HTML & CSSならテキストエディタとブラウザがあればできますが、Ruby on Railsはそれだけじゃできません。
今使ってるパソコンに開発環境を作るのもいいんですが、これはなかなか大変なようです。特にWindowsは大変みたいなので、開発環境作りで挫折してしまうかもしれません。
ということで、RailsチュートリアルではAmazonのAWS Cloud9をオススメしてます。クラウドの開発環境なので、アカウントを作ってポチポチしてくだけで簡単に開発環境が作れます。
Railsチュートリアルに書いてある通りに開発環境を作っていきましょう。もう少し詳しい解説が欲しい場合は、ググると出てきます。
1.2.2 Railsをインストールする
Cloud9には最初からRuby on Railsが入ってたり、入ってなかったりするみたいです。1周目でどうだったか忘れましたが、2周目で作り直したときはRailsのバージョン5.0.0が入ってました。
Railsチュートリアル第6版はRails6.0.0なので、そのバージョンのRailsをインストールします。この辺も指示通りにやってけば問題なくできるはずです。
ただ、コマンドラインに慣れてないとドキドキしながらの作業になると思います。僕は「1文字でも間違えたら大変なことになるんじゃないか」とか思ってましたが、実際はエラーになるだけで今のところ大きな問題に出会ってません。
Rails以外にもJavaScript関係のものをインストールして、準備完了です。
1.3 最初のアプリケーション
とうとう最初のアプリケーションを作る段階に来ました。でも、「Hello, world!」を表示するだけの簡単なもので、Progateをやった人はちょっと拍子抜けするかもしれません。
それでもしっかりとやってきましょう。
まず、Railsのバージョンを6.0.0に指定してアプリケーションを作ります。
指示されたコマンドを打つと、よくわからないものが大量に表示されてきますが、そういうものなので安心してください。
~/environment $
みたいな感じの表示に戻ったら完了です。意外と時間がかかったりもしますが、とりあえず待ちましょう。
この時点でRailsのバージョンを確認すると6.0.2.2となってました。6.0.0で指定してアプリケーションを作ったのに、よくわかりません。
でも、大丈夫です。次の「Bundler」で6.0.0になります。
1.3.1 Bundler
Railsにはgem(ジェム)というライブラリがたくさんあります。gemにもバージョンがあって、そのバージョンを指定してインストールすることができます。本当は最新のものを使うみたいですが、Railsチュートリアルではバージョン違いによるエラーが出ないように、バージョンを完全に指定してインストールします。
Gemfileを書き換えることになりますが、もともと書いてあるものをすべて削除して、Railsチュートリアルにあるものを書くかコピペします。僕はコピペしました。
ここで、Railsのバージョンを6.0.0に指定します。
さっき作ったアプリケーションのディレクトリに移動して、「bundle install」を実行します。これはコマンドラインにそのまま打ち込みます。
そうするとインストールが実行されるわけですが、エラーが出ることがあります。僕は1周目も2周目もエラーが出ました。
Bundler could not find compatible versions for gem "activesupport":
In snapshot (Gemfile.lock):
activesupport (= 6.0.2.2)
In Gemfile:
rails (= 6.0.0) was resolved to 6.0.0, which depends on
activesupport (= 6.0.0)
sass-rails (= 5.1.0) was resolved to 5.1.0, which depends on
railties (>= 5.2.0) was resolved to 6.0.2.2, which depends on
activesupport (= 6.0.2.2)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
英語が苦手な人はGoogle翻訳とかに頼ってみるといいと思います。
内容としては「Bundlerが互換性のあるバージョンを見つけられなかった」的なことが書いてあります。最後の「Running~」のところを読むと、「Bundle updateをするとコンフリクトが解決すると思うよ」的なことが書かれてるので、「bundle update」を実行します。
この辺もRailsチュートリアルに書いてあります。
このエラーが出たら「bundle update」を実行して、そのあと「bundle install」を実行します。
Bundle complete! 17 Gemfile dependencies, 75 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
そうすると「Bundleが完了しました!」と出ます。
ここでRailsのバージョンを確認すると6.0.0になってるはずです。
1.3.2 rails server
すでに最初のアプリケーションは作ってあるので、それがちゃんとできてるかブラウザで確認します。そのための設定をして、Railsサーバーを起動するとデフォルトのRailsページを表示することができるようになります。

1.3.3 Model -View-Controller(MVC)
ここはかなり重要な部分だと思います。Railsのアプリケーションがどのような仕組みになってるかがわかってないと、先に進むほどわかんなくなってくと思います。
1周目でその辺をいい加減にやってたのが混乱の原因かなと思ってます。これと関連するものとしてルーティングとかもあります。どこかの章で出てくると思いますが、前にまとめたものがあるのでリンク張っときます。
僕がまとめた記事ではビューからブラウザに返すようになってますが、この辺は文献によるみたいです。詳しくはRailsチュートリアル第2章の注釈を見てください。
MVCはこの後の章でも出てくるので、そのときにしっかりと理解するつもりで、第1章では「そういう感じの仕組みになってるんだ」くらいで進んでおきます。
1.3.4 Hello, world!
他のプログラミング言語でも最初に出てくる「Hello, world!」。Railsチュートリアルでも登場します。
第1章で「Hello, world!」で表示するには、ルーティング、コントローラを修正します。ここは指示通りにやれば問題なくできると思います。ただ、Progateとはやり方が違うので、Progateを先にやった人は少し戸惑うかもしれません。
1.4 Gitによるバージョン管理
Railsチュートリアルで初めてGitを触るとなると、ちょっとしんどいかもしれません。先にProgateの「Gitコース」をやっておくのをオススメします。
1.4.1 インストールとセットアップ
Cloud9でやってるなら最初からGitは入ってるので、インストールは必要ありません。念のためバージョン確認をして、インストールされてるか確認してもいいと思います。
git --version
先にGitに名前とメールアドレスを登録することになりますが、これは登録しなくてもいいみたいです。詳しくはRailsチュートリアルの解説動画を見てください。
ここも指示通りでOKです。
git add -A
git commit -m
このコマンドはRailsチュートリアルの中で何度も出てきます。
ちなみに、「初回のリポジトリセットアップ」というところで、helloアプリケーションのルートディレクトリに移動してということが書かれていますが、僕はその前の作業をhelloアプリケーションのルートディレクトリでやってました。
何か問題あるかなと思いましたが、第2章で新しいアプリケーションを作ってGitでバージョン管理をやっても問題ありませんでした。
1.4.2 Gitのメリット
指示通りに体験してみると、Gitのメリットを実感できると思います。
ディレクトリを削除するので心配になるかもしれませんが、ミスってわかんなくなってもアプリごと消してやり直すという手段があるので大丈夫です。
1.4.3 GitHub
Gitの次はGitHub。同じような名前で、何が違うのか混乱する人もいるかもしれません。僕も最初はわけがわからず、調べまくりました。
現時点の理解としては、Gitはバージョン管理システムで、GitHubはそれをクラウド上でやって複数人で共同開発をしやすくするためのシステム、という感じです。間違ってたらすみません。
GitHubは実際の現場でよく使われてるみたいなので、Web系エンジニアになろうと思ってるならここもやっておきましょう。
でも、Railsチュートリアル自体はGitHubを使わなくても進められるので、1周目はGitHubなしというやり方でもOKです。僕はそうしました。
アカウント登録が面倒だったのもあって。
ここも基本的に指示通りです。GitHubの登録について詳しく知りたい場合は、ググるといろいろ出てきます。
GitHubの登録が終わると、コマンドラインを使ってGitHubにファイルを上げるわけですが、そのときにusernameとpasswordが要求されます。
パスワードの入力のときに、何を入力してもコマンドラインに何も表示されませんが、実際は入力されてました。とりあえずパスワードを入力してEnterキーを押してみたらうまくいったので。
1.4.4 ブランチ、編集、コミット、マージ
Gitでのバージョン管理では、大元のバージョン(master)からブランチ(branch)と呼ばれるバージョンを分岐させて編集することができます。ブランチでの変更はmasterに影響しないので、安心して作業ができます。
ブランチでの作業が終わったら、コミット(commit)として変更を保存します。これはすでにやりましたね。
git commit -m
これがそのコマンドです。
その変更をmasterに反映させます。それが「マージ(merge)」です。マージはmasterブランチに移動してやります。
ここでは何となくわかればいいと思います。この後の章で、ブランチを作り、作業して、コミットして、マージして、というのを何度も繰り返すことになるので、やりながら覚えられるはずです。
GitHubを使うなら、最後にデータをGitHubに上げる(プッシュする)必要があります。実際にREADMEを変更してプッシュの体験ができるようになってるので、やってみるとわかると思います。
1.5 デプロイする
最後に第1章で作ったアプリを公開します。最初に説明した通り、これを「デプロイする」と呼ぶようです。
デプロイするにはいろんな方法があるようですが、RailsチュートリアルではHeroku(へろく)というサービスを使います。Railsチュートリアルの範囲であれば無料でできるそうです。
ここも指示通りで問題ないので詳しい説明は省略しようと思います。
デプロイしなくてもRailsチュートリアルを進めてくことはできるので、1周目はやらないという選択も可能です。
第1章はRailsアプリケーションを作り、Gitでバージョン管理をして、GitHubとHerokuに登録という感じで、新しいことを並行してやってく感じになってます。僕は混乱しそうだったので、1周目はRailsアプリケーションの方に集中するために、GitHubとHerokuはやりませんでした。
2周目でHerokuにデプロイできたときは、ちょっとした感動がありました。
まとめ
Ruby on Railsチュートリアルの第1章は、簡単なRailsアプリケーションを作ってみて、GitやGitHubでのバージョン管理のやり方、Herokuへのデプロイなどを体験してみるという感じの章かなと思います。
やってることの大変さに比べて、出来上がったものが「Hello, world!」だけという労力に見合わない感じもある気がします。
でも、第1章を一通りやれば、開発環境を作るところから、Railsアプリケーションを公開するところまでを体験できるので、大まかな流れを知ることはできたかなと思ってます。
第2章はRuby on Railsの便利さを実感できる章になってるので、先に進みましょう!
