0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rails CRUD処理実装のアプリを立ち上げ~Git hub管理まで

Last updated at Posted at 2022-07-15

アプリを作成する度に未だに毎回検索しているのでここの復習も兼ねてまとめます。
プログラミング初心者向けの記事となります。

開発環境

  • Rails
  • Ruby
  • git
  • Git 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:-ccreateの略で新しいブランチを作成するコマンド。feature/settingsは私が命名した新しいブランチの名前です。

Q:feature/-------とは
A:新しいブランチ名である。新しいブランチ名は自由に命名できるが、自由すぎると一体どのようなブランチなのか混乱しかねない。そこでチーム開発においてどのようなブランチなのか分かりやすくするために提案された命名ルールGit-flowという考え方がある。今回はGit-flowに従い、新しい機能を実装する場合のブランチ名は、特徴を意味するfeatureの後に英単語で命名した。

.gitignoreの追記

先ほど新しく作成したブランチ(feature/settings)の.gitignoreというファイルに以下のコードを追記していく。

.gitignore
.DS_Store
/vendor/bundle
.gitignore
# 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+ignoreGitで無視するリストといった意味になる。

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の設定をしてリモートリポジトリにプッシュしてマージする。

ここからアプリ作成に取り掛かっていく。
テーブルの設計を行い
モデルの作成
コントローラーとビューを作成していく

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?