LoginSignup
0
0

Ruby on Rails チュートリアル 第1章で学んだMVCモデルとGit

Posted at

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
    

    参考

    Ruby on Rails チュートリアル

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