目次
1. はじめに
- この記事は、Rails初学者の工業大学三年生がRailsチュートリアルの学習記録を
つけるための記事です。 - 筆者自体がRailsやWebについて知識が少ないので、内容の解釈などに
間違いがある可能性があります。(その時はコメントで指摘してくださると助かります!) - Railsチュートリアル内ではRailsの内容以外にも、gitでのバージョン管理やHerokuを使ったデプロイも
学習しますが、gitに関しては既に私が学習済みのため学習記録には記述しません。 - 演習の記録も省略します。
2. 第1章の概要
- AWS Cloud9を使った開発環境の準備
- 必要なgem, プログラムのインストール
- 最初のアプリケーションの作成
- Railsアプリケーションの仕組みについて
- コントローラとアクションについて
- ルーティングについて
- Herokuへのデプロイ
- Herokuへのデプロイの準備、デプロイ
- 開発環境の変更を本番環境に反映させる方法
3. 学習内容
1. AWS Cloud9を使った開発環境の準備
AWSのアカウントの作成~ワークスペースの作成までの説明は省略します。
1-1. 必要なgem, プログラムのインストール
①Rubyドキュメントのインストールをしない設定にする
gemのインストール時などにドキュメントをインストールしているとその分時間がかかってしまうので、
コマンドラインで$ echo "gem: --no-document" >> ~/.gemrc
を実行して、
ドキュメントをインストールしない設定に変更します。
②バージョンを指定してRailsをインストールする
$ gem install rails -v 6.0.3
を実行してRailsをインストールします。
インストールできたかどうかは、$ rails -v
を実行してバージョンが表示されるかで確認できます。
③Yarnをインストールする
$ source <(curl -sL https://cdn.learnenough.com/yarn_install)
を実行して
Yarnというプログラムをインストールします。
YarnはJavaScriptのソフトウェアの依存関係を管理するプログラムで、上記のコマンドは
クラウドIDEで開発するときに使用できるCDN経由のダウンロード、セットアップとなります。
ネイティブOSで開発するときはOSごとのインストール方法に従うことになります。
以上で、RailsでWeb開発を行う準備は完了です。
1-2. 最初のアプリケーションの作成
①Rails newを実行してアプリケーションを作成する
どのRailsアプリケーションでもrails new
コマンドを実行するところから始まります。
実行すると指定したディレクトリにアプリケーションの原型が作成されます。
Railsチュートリアルでは$ rails _6.0.3_ new hello_app
と書くことで、バージョンを指定してhello_appという
アプリケーションを作成します。
②Bundlerを使ったgemのインストール
Bundlerとは、gemの互換性を保ちながらgemの導入や管理を行ってくれるライブラリです。
Gemfileに使用したいgemやバージョンを記述してbundle install
やbundle update
を実行します。
Railsチュートリアルでは、gem 'gem名', 'バージョン'
という表記になっています。
この表記方法だと、指定したバージョンのgemをインストールしてくれます。
バージョン指定の方法は他にもあり、gem 'gem名', '>= バージョン'
だと指定したバージョン以上で最新のgemを
インストールしてくれます。
gem 'gem名', '~> バージョン'
だと指定したメジャーバージョンかつマイナーバージョンかパッチバージョンが
最新のgemをインストールしてくれます。
今回はRailsチュートリアル内のGemfileと同じように書き替えて、bundle installを実行します。
③rails serverの実行
ここまでで、実際に動かせるアプリケーションが作成されたためrails server
を実行することで、
アプリケーションが正しく動くかを確認することができます。
2. Railsアプリケーションの仕組みについて
2-1. コントローラとアクションについて
①コントローラとは
コントローラはWebサーバーへのリクエストを処理します。
チュートリアル内でもう少し先に出てくるモデルと通信して、データベースの情報を受け取ったり、
そのデータをビューに渡して動的なページを作ってもらって受け取ったりします。
①アクションとは
アクションとはコントローラ内で定義されるもので、この段階ではrenderメソッドを使って
htmlで文字列を表示させています。
class ApplicationController < ActionController::Base
def hello #applicationコントローラ内のhelloアクション
render html: "Hello!" #Hello!という文字列を表示
end
end
今後、ビュー内で使用する変数を定義するためにも使います。
2-2. ルーティングについて
ルーティングとはブラウザからのリクエストをコントローラに振り分ける役割を持ちます。
今のところは、URLとコントローラを対応付けるという認識です。
ここでは、ルートURLと呼ばれるhttp://www.example.com/ または「/」といったURLへのアクセスを
どのコントローラに割り振るかを定義します。
Rails.application.routes.draw do
root 'application#hello'
end
上記のコードではルートURLに対するアクセスをapplicationコントローラ内のhelloアクションに割り振っています。
以上が第1章のアプリケーション作成についての内容です。
3. Heokuへのデプロイ
gitへのプッシュ、Herokuのアカウント作成は省略します。
3-1. Herokuへのデプロイの準備、デプロイ
①開発環境と本番環境で使うデータベースの設定
Railsチュートリアルの開発環境ではSQliteというデータベースを使用するのですが、Herokuの本番環境では
SQliteが使用できないため、PostgressSQLというデータベースを使用します。
その設定をするためにGemfileに変更を加えます。
group :development, :test do #開発環境で使用するgemを指定するグループ
gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw]
gem 'sqlite3', '1.4.1' #SQlite用のgem
end
group :production do #本番環境で使用するgemを指定するグループ
gem 'pg', '1.1.4' #PostgressSQL用のgem
end
Gemfileを変更したのでbundle install
を実行して準備完了です。
②Herokuのインストール、デプロイ
source <(curl -sL https://cdn.learnenough.com/heroku_install)
を実行して、Herokuをインストールします。
その後heroku loginコマンドでHerokuにログインします。
Herokuにログインできたら、heroku create
というコマンドを実行して、herokuサーバー上に
アプリケーションの実行場所を作成します。
その後、git push heroku master
を実行することで、ローカルリポジトリの内容をHerokuにデプロイすることができます。
3-2. 開発環境の変更を本番環境に反映させる方法
これ以降、開発環境で変更を行い、それを本番環境に反映したいときには、
3-1に沿って、git commit -a
でコミットを行いgit push
でリモートリポジトリに変更内容をプッシュした後、
git push heroku master
を実行してローカルリポジトリの内容をHerokuにプッシュします。
4. 終わりに
第1章はまだ躓く個所はなく、かかった時間は約4時間ほどでした。
この記事を書くのにかかった時間が約2.5時間程でちょっと長いと感じたので、次から密度を下げたいなと思っています。
以降の内容も、1章分終わったらQiitaに記事を投稿という流れで進めていきます。
(内容が多い章は記事を2つに分けることも考えています)