MVCモデルとは
Model View Controller の略。それぞれ以下の役割がある。
- Model : データベースから引っ張ってきたデータを表化する
- View : HTMLをWebページとして表示する
- Controller モデル&ビューとクライアント側のブラウザに表示する部分の仲介役。クライアントがサーバーにリクエストする際の処理を担っている。
ブラウザがRailsアプリと通信する際、一般的にWebサーバーにリクエスト(request)を送信し、これはリクエストを処理する役割を担っているRailsのコントローラ(controller)に渡される。コントローラは、場合によってはすぐにビュー(view)を生成してHTMLをブラウザに送り返す。動的なサイトでは、一般にコントローラは(ユーザーなどの)サイトの要素を表しており、データベースとの通信を担当しているRubyのオブジェクトであるモデル(model) と対話する。モデルを呼び出した後、コントローラは、ビューを描画(レンダリング)し、完成したWebページをHTMLとしてブラウザに返す。
Git まじ便利!
扱い手順は以下のステップで行う。
① Gitを導入するためにシステムセットアップを行う。$ git config --global user.name "Your Name" $ git config --global user.email your.email@example.com
②登録するアプリのルートディレクトリに移動後、
Git init
でリポジトリの初期化を行う。$ cd ~/environment/hello_app # ディレクトリに移動済みの場合は不要 $ git init Reinitialized existing Git repository in /home/ubuntu/environment/hello_app/.git/
※リポジトリが「再初期化された(Reinitialized)」というメッセージが出る。
③プロジェクトファイルを リポジトリ(ソースコードを保存する場所)に追加
$ git add -A
-Aを打つことにより、現在のディレクトリにあるほぼ全てのファイルが追加される。
ただし、.gitignore
に書かれているパターンにマッチするファイルは追加されない。また、安全のためaddコマンド後はいきなりコミット(保存)しないよう、Staging と言う一種のコミット待ち状態になる。
ステージングの状態を知るには$ git status
を打つ。
④ ステージングにあるファイルをリポジトリにコミット(保存)する
$ git commit -m "ここにコミットメッセージを書く"
ちなみに、
git log
コマンドでこれまでのコミットメッセージの履歴を確認することができる。Gitのメリット
例えば以下のコマンドでディレクトリを削除してしまった場合
$ ls app/controllers/ application_controller.rb concerns/ $ rm -rf app/controllers/ $ ls app/controllers/ ls: app/controllers/: No such file or directory
現在の状態を確認してみる
$ git status On branch master Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: app/controllers/application_controller.rb deleted: app/controllers/concerns/.keep no changes added to commit (use "git add" and/or "git commit -a")~
ファイルがいくつか消えちゃったけど、まだコミットされてない から簡単に元に戻せる!
$ git restore . #保存前に戻す $ git status On branch main nothing to commit, working tree clean $ ls app/controllers/ application_controller.rb concerns/
削除してしまったディレクトリやファイルが、無事に復旧!
Gitのブランチ(Branch)
ブランチ とは基本的にはコード全体のコピーで、元のコードにいつでも戻れる状態を維持しながら、新しくコードを追加したり変更したいときに便利。通常、大元のコードがあるリポジトリは mainブランチと呼ばれ、ブランチを新たに作りたいときは
switch
と-c
オプションで作成する。新たに作成されたブランチを トピックブランチと呼ぶ。$ git switch -c modify-README #新しいブランチを作成して同時にブランチを切り替える--① Switched to a new branch 'modify-README' $ git branch #今どこにいるか確認できる main * modify-README
modify-README
ブランチに「*」が付いているので、現在はmodify-README
ブランチにいることが分かる。
modify-README
ブランチで行った変更はmain
ブランチに影響しないため、たとえば試行錯誤を繰り返してコードがめちゃくちゃになってしまってもmain
ブランチに戻れればいつでも元の状態に戻るし、もしもう一度書き直したい場合はmodify-README
ブランチごと削除することもできる。トピックブランチを作ったら好きに編集する。
コミット(Commit)する。
変更が終わったら、
git status
コマンドで現在の状態を確認する。$ git status On branch modify-README Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore -- <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a")
README.mdの変更が確認されている。
この変更をリポジトリに追加する。$ git commit -a -m "improe the README file" [modify-README ea72c6c] improe the README file 1 file changed, 4 insertions(+), 23 deletions(-)
このコマンドでは-a(リポジトリ追加)と-m(コミット)を一緒に行っている。便利!
ただし、このコマンドでは一回でコミットまでしちゃってるので打つときは注意が必要。Gitのマージ(Merge)
ファイルの変更をコミットし終えたら、mainブランチにこの変更をマージ(merge)する。
$ git switch main #mainに切り替え Switched to branch 'main' $ git merge modify-README #編集したトピックブランチをマージ Updating b981e57..015008c Fast-forward README.md | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-)
変更をマージした後は、
git branch -d
を実行してトピックブランチを削除しても良い。Push(プッシュ)
READMEファイルの更新が終わったので、プッシュ(push)コマンドでGitHubに変更をアップロードする。
$ git push
参考