LoginSignup
1
0

More than 3 years have passed since last update.

Rails初学者によるRailsチュートリアル学習記録③ 第1章

Posted at

目次

1. はじめに

  • この記事は、Rails初学者の工業大学三年生がRailsチュートリアルの学習記録を
    つけるための記事です。
  • 筆者自体がRailsやWebについて知識が少ないので、内容の解釈などに
    間違いがある可能性があります。(その時はコメントで指摘してくださると助かります!)
  • Railsチュートリアル内ではRailsの内容以外にも、gitでのバージョン管理やHerokuを使ったデプロイも
    学習しますが、gitに関しては既に私が学習済みのため学習記録には記述しません。
  • 演習の記録も省略します。

2. 第1章の概要

  1. AWS Cloud9を使った開発環境の準備
    1. 必要なgem, プログラムのインストール
    2. 最初のアプリケーションの作成
  2. Railsアプリケーションの仕組みについて
    1. コントローラとアクションについて
    2. ルーティングについて
  3. Herokuへのデプロイ
    1. Herokuへのデプロイの準備、デプロイ
    2. 開発環境の変更を本番環境に反映させる方法

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 installbundle 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で文字列を表示させています。

application_controller.rb
class ApplicationController < ActionController::Base
    def hello #applicationコントローラ内のhelloアクション
        render html: "Hello!" #Hello!という文字列を表示
    end
end

今後、ビュー内で使用する変数を定義するためにも使います。

2-2. ルーティングについて

ルーティングとはブラウザからのリクエストをコントローラに振り分ける役割を持ちます。
今のところは、URLとコントローラを対応付けるという認識です。
ここでは、ルートURLと呼ばれるhttp://www.example.com/ または「/」といったURLへのアクセスを
どのコントローラに割り振るかを定義します。

routes.rb
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に変更を加えます。

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つに分けることも考えています)

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