LoginSignup
1
0

More than 1 year has passed since last update.

Railsチュートリアル(第6版) 第1章 ゼロからデプロイまで

Last updated at Posted at 2021-05-16

はじめに

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の設定

application_controller.rb
 class ApplicationController < ActionController::Base
  def hello
    render html: "hello, world!"
  end
end

Controller内には、アクションと呼ばれるものがあります。
defからendまでが一つのアクションです。

routerの設定
ルーターはブラウザからのリクエストを各コントローラのアクションに振り分けます。

config/routes.rb
Rails.application.routes.draw do
  root 'application#hello'
end

上記の場合、applicationという名前のコントーラーにあるhelloアクションに繋いでくれます。

rails serverを起動
image.png

ブラウザで確認したところ、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時にusernamepasswordを求められる。
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 mastermasterに移動し、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コマンドでログインを実行。尚、--interactiveherokuコマンドでブラウザを開かないようにするためのもの。

そして、heroku createコマンドで、Herokuに開発したアプリケーションの実行場所を作成する。

$ git push heroku masterを実行すればデプロイ終了!

ちなみに、$ heroku rename アプリケーション名で名前を変更できる。但し、ネット上(heroku)にアップする名前なので、同一の名前があった際には同じ名前は使用できない。

第一章終わり

Railsチュートリアル第1章は、AWSやHeroku、Githubの登録が殆どなので人によってはすぐに終わると思います。また、コマンド操作によるセットアップが大半のため、まだプログラミング感は出てきません。
第2章からは、段々とプログラミングしていきます。

1
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
1
0