アプリを作成する度に未だに毎回検索しているのでここの復習も兼ねてまとめます。
プログラミング初心者向けの記事となります。
開発環境
RailsRubygitGit hub
手順
-
Railsでアプリ作成 -
gitでローカルリポジトリを作成 -
Git hubでリモートリポジトリを作成 -
ローカルリポジトリにリモートリポジトリを追加する
まずはRailsでアプリを作成
rails _6.1.6_ new アプリ名 -d postgresql -T
cd アプリ名
rails db:create
コマンドの解説
Q:なぜRailsのバージョンは6系指定?
A:最新のRailsのバージョン7はまだ出たばかりで不具合などあり,変更点も多々あるため6系最新バージョンを指定しています。
Q:-d PostgreSQLとは
A: データベースを指定するコマンドのこと。Railのデータベースは、デフォルト設定ではSQ Lite3 (ライブラリ型)が指定されている。
SQ Lite3は簡単なアプリの練習では問題ないが、私の扱っている教材ではポートフォリオ制作としては推奨されていない。
最初のデプロイ先として利用するHerokuのデフォルトデータベースシステムがPostgreSQLであることを踏まえ,初学者の私は 今回PostgreSQLを指定した。
Q:-Tとは
A: --skip-testの略でMiniTestという制作したアプリをテストするためのディレクトリを作成しないオプション。
わざわざ記事に記載することではないのですが、私の復習も兼ねているためあえて記載します。なお、Railsでテストを作成するための機能としてはRSpecを使用するつもりです。
Q:rails db:createとは
A: データベースを 作成 するコマンドです。このコマンドを実施することでconfig/database.ymlというアプリ内のファイルに基づき、データベースが作成されます。config/database.ymlはファイルのデータベースファイルの保存場所(MySQL PostgreSQLなど)とファイル名を指定するものです。今回はデフォルトのデータベースSQ Lite3ではなく、PostgreSQLをしているのでこのコマンドが 必須 になります。
アプリを作成したらローカルリポジトリへ保存する
git add .
git commit -m "init"
解説
Q:git add.とは
A:今作業している領域から一時保存のような領域へ追加するコマンド
作業内容を細かく一時的に保存することであとで整理しやすくなる。
Q:git commitとは
A:git add.で 一時保存内容 した内容 を 保存領域 へ引き渡すコマンド
この作業を行うことでリモートリポジトリへ送る準備が整う。
Q:-m "init"とは
A: コミットする際に修正や実装した変更内容を記載するための記入欄。
なお初回のコミットメッセージについて
本来、git initというローカルリポジトリを作成するコマンドがある。Railsではアプリ作成時に自動でローカルリポジトリを作成するため、このコマンドは不要である。最初のコミットメッセージではinitが慣習で用いれられることが多い
リモートリポジトリを作成する
具体的な作成方法については単純な作業のため現時点(2022/07/13)では割愛する。
-
Git hubでリモートリポジトリを作成しURLをコピーしておく
ローカルリポジトリの内容をリモートリポジトリへ反映する
git remote add origin URL名
git push origin HEAD
コマンドの解説
Q:git remote add originとは
A:ローカルリポジトリに指定したリモートリポジトリを追加するコマンド。「origin」とは リモートリポジトリのアクセス先に対してGitがデフォルトでつける名前のこと。
origin = https://github.com//rails-board.git
上記のoriginとは「起源」を意味し、Web上の場所(URL)を示していることを表している
Q:git push origin HEADとは
A:ローカルリポジトリでの変更内容(commitされたコード)をリモートリポジトリへ共有するコマンド
アプリ制作を進めていく前に、、、
本格的に機能を実装する前に、まずはアプリの設定を行なっていきます。
まずはbranchを切ります。
git switch -c feature/settings
コマンドの解説
Q:git switchとは
A:ブランチを 切り替える専用 のコマンド
Q:-cとは
A:-cはcreateの略で新しいブランチを作成するコマンド。feature/settingsは私が命名した新しいブランチの名前です。
Q:feature/-------とは
A:新しいブランチ名である。新しいブランチ名は自由に命名できるが、自由すぎると一体どのようなブランチなのか混乱しかねない。そこでチーム開発においてどのようなブランチなのか分かりやすくするために提案された命名ルールGit-flowという考え方がある。今回はGit-flowに従い、新しい機能を実装する場合のブランチ名は、特徴を意味するfeatureの後に英単語で命名した。
.gitignoreの追記
先ほど新しく作成したブランチ(feature/settings)の.gitignoreというファイルに以下のコードを追記していく。
.DS_Store
/vendor/bundle
# Ignore bundler config.
(bundler の設定を無視する。)
# Ignore all logfiles and tempfiles.
(すべてのログファイルやtempfilesを無視する。)
# Ignore pidfiles, but keep the directory.
(pidfiles は無視するが、ディレクトリは維持する。)
# Ignore uploaded files in development.
(開発中にアップロードされたファイルを無視する。)
# Ignore master key for decrypting credentials and more.
(認証情報を復号化するためのマスターキーなどは無視する。)
解説
Q:.gitignoreとは
Gitでコード管理したくないファイルやディレクトリを指定するためのファイルです。
冒頭の「.」は隠しファイルであることを意味している。ignoreは「無視する」を意味し、git+ignoreでGitで無視するリストといった意味になる。
Q:.DS_Storeとは
A:_Macでのみ使用される隠しファイルで、各ファイルに一つずつ存在しそのファイルのデータを表す属性や関連する情報を記述したデータのこと。他人に共有する必要がないファイルなので.gitignoreに追加するらしい。
Q:/vendor/bundleとは
以下のコマンドを実行した時に作成されるgemのディレクトリのこと。
bundle config set path vendor/bundle --local
↓
bundle install
上記コマンドを実行するとアプリ内の/vendor/bundle ディレクトに全く必要のない大量のgemデータがインストールされることになる。それらの不要で膨大なデータをGitへpushしないよう.gitignoreに追加するらしい。
.gitignoreの設定をしてリモートリポジトリにプッシュしてマージする。
ここからアプリ作成に取り掛かっていく。
テーブルの設計を行い
モデルの作成
コントローラーとビューを作成していく