はじめに
Railsチュートリアル(第6版)を通じて、Ruby on Railsの学習を記録することで理解度を高めることを目的としています。
また、これからRailsチュートリアルを学ぶ方向けに、できる限り分かりやすく伝えていきたいと思います。
第1章
Railsチュートリアルを学習する上での前提知識
必修科目
・HTML/CSS
・JavaScript
・Sass
・jQuery
・SQL
・Git
・コマンドライン操作
上記の知識に不安がある方は、Progateで学ぶと学習がよりスムーズになります。
(RailsチュートリアルはProgateと提携していて安心!)
また、Railsチュートリアルはボリュームが多く、難易度が高めなので、ProgateのRubyとRuby on Railsは学んでおくと良いです。
開発環境
環境構築はローカルで構築する方法もあるが、RailsチュートリアルではAWSのCloud9というIDE(統合開発環境)を使用。
Q:IDEって?
A:IDE(Integrated Development Environment)といい、日本語では統合開発環境と呼ぶ。開発に必要なテキストエディア、コンパイラ、デバッガ等をまとめたもの。色々揃ったスーパーマーケットみたいなやつ
今回はRailsチュートリアルに沿って、AWS Cloud9を使います。
MVCの概念
Q:MVCってなに?
A:Model-View-Controllerの頭文字を取ったもの。
Model→データベースの対話役。データベースの情報を引っ張ってくる。
View→普段見ている画面。所謂Webページ
Controller→ViewやModelを繋げる道先案内人。クライアントのリクエストを割り振る。
MVCがまだよくわからなければ、ここでは3役いるんだなくらいで良いと思います。
hello_app
環境構築が出来たら、さっそくhello_appの作成
(プログラミングで演習でよくあるHello worldを表示するもの)
Controllerの設定
class ApplicationController < ActionController::Base
def hello
render html: "hello, world!"
end
end
Controller内には、アクションと呼ばれるものがあります。
def
からend
までが一つのアクションです。
routerの設定
ルーターはブラウザからのリクエストを各コントローラのアクションに振り分けます。
Rails.application.routes.draw do
root 'application#hello'
end
上記の場合、applicationという名前のコントーラーにあるhelloアクションに繋いでくれます。
ブラウザで確認したところ、hello,worldと表示されている。
Gitによるバージョン管理
Q:Gitって?
A:バージョン管理システムの事。いつ誰がどんな変更したかを管理でき、履歴を辿れるので非常に便利
・初回のシステムセットアップ
①名前とメールアドレスの設定(リポジトリ上で一般に公開されるので注意)
$ git config --global user.name "自分の名前"
$ git config --global user.email your.email@example.com
②エディタはnanoエディタを設定
$ sudo ln -sf `which nano` /usr/bin
③エイリアスは設定すると便利(git checkout
と入力するところをgit co
でcheckoutできるようになる)
$ git config --global alias.co checkout
④Gitでパスワードを一定時間保持する設定(下記は1日間)
$ git config --global credential.helper "cache --timeout=86400"
初回レポジトリ
①レポジトリの初期化を実行
$ git init
②レポジトリを追加
$ git add -A
-A
を入れるとディレクトリのファイルが全て追加されるが、.gitignore
ファイルは追加されない。
また、add
はステージングに置く行為を指し、コミット前の待機所みたいな場所にある。ステージング状態を知るには、status
コマンドを使用。
$ git status
③コミット
$ git commit -m "メッセージ名"
-mを入れることで直接メッセージを入れられる。
④log確認
$ git log
git logを実行する事で、コミット履歴を参照できる。
Gitのメリット
Q:Gitを使う事の恩恵って?
A:誤って削除したり、元に戻したくなった時に戻せる。
Github
Q:Githubとは?
A:ソースコードをホスティングして共有できるプラットフォームの事。共同作業とバックアップ作成のためには欠かせない。
→Railsチュートリアルに沿って、Githubのアカウント作成
Githubにレポジトリをpushする
$ git remote add origin https://github.com/<あなたのGitHubアカウント名>/hello_app.git
$ git push -u origin master
※初めて使う人へ
初回push時にusername
とpassword
を求められる。
username
は入力すればターミナル上に表示されるが、**password
は入力しても透明のままである。**しかし、透明ではあるが入力されているので、気にせずGithubのパスワードを入力する。
入力しエンターキーを押せば、Githubにソースコードがアップロードされる。
(筆者は最初pushした時、パスワードが表示されておらず、若干困惑した。入力したら*****
みたいなのがあったらいい感じだと思う)
Branch(ブランチ)
Q:ブランチとは
A:元のファイルを触らずに、コードを書いたりできるもの。
細かく言うと、元のファイルを幹として、そこからBranch(枝分かれ)させることで作業履歴を分岐してあれこれ弄れる。
$ git checkout -b ブランチ名
Switched to a new branch 'ブランチ名'
$ git branch
master
* ブランチ名
Commit
Q:Commitとは?
A:変更・追加したファイルをGitに保存してあげる事
コミットを一括で行う方法は下記の通り
$ git commit -a -m "メッセージ名"
-a
フラグは使うことで一括コミットできる。
Merge
Q:Mergeとは?
A:Branchによって分岐された履歴を戻して統合すること。元の親レポジトリに上書きする認識
$ git checkout master
Switched to branch 'master'
$ git merge ブランチ名
merge
のやり方としては、git checkout master
でmaster
に移動し、git merge ブランチ名
でマージできる。
merge
ができたら、git branch -d
を実行し、トピックブランチを削除する。
(トピックブランチを必ず削除する必要はない。masterブランチとトピックブランチを使い分けよう)
また、git branch -D
を実行するとトピックブランチ上の変更を破棄できる。
Push
Q:Pushって
A:コミットしたローカルレポジトリをリモートレポジトリにあげること
$ git remote add origin https://github.com/<あなたのGitHubアカウント名>/hello_app.git
$ git push -u origin master
一度pushしているので下記のコマンドだけでOK(origin masterは省略)
$ git push
デプロイ
Q:デプロイとは
A:使用可能状態にすること。Deployは、日本語で配備するという意味
Railsチュートリアルでは、Herokuにデプロイすることになっており、Herokuへの登録を済ませておくこと。
クラウドIDE上にHerokuをインストールするコマンド
$ source <(curl -sL https://cdn.learnenough.com/heroku_install)
インストールが終われば、heroku --version
コマンドでインストールされているかが分かる。
確認できたら、heroku login --interactive
コマンドでログインを実行。尚、--interactive
はheroku
コマンドでブラウザを開かないようにするためのもの。
そして、heroku create
コマンドで、Herokuに開発したアプリケーションの実行場所を作成する。
$ git push heroku master
を実行すればデプロイ終了!
ちなみに、$ heroku rename アプリケーション名
で名前を変更できる。但し、ネット上(heroku)にアップする名前なので、同一の名前があった際には同じ名前は使用できない。
第一章終わり
Railsチュートリアル第1章は、AWSやHeroku、Githubの登録が殆どなので人によってはすぐに終わると思います。また、コマンド操作によるセットアップが大半のため、まだプログラミング感は出てきません。
第2章からは、段々とプログラミングしていきます。