LoginSignup
1
2

More than 3 years have passed since last update.

【初学者支援】RailTutorialで唯一暗記したほうがいいところ

Posted at

どうも、くぼはるです。

僕は普段初学者にプログラミングを教えるときに、

「丸暗記は絶対するな!」と声を大にして言います。

ですが、今回はあえて言いましょう。

「ここだけは暗記してでも押さえておけ!」と。

ここってどこなんだって話ですよね。

それは、「MVCアーキテクチャの概念図」です。

iOS の画像.jpg

うわーめっちゃ読み飛ばしたいわー横文字つらいわーって思ったそこのあなた!

まぁ否定はしません。僕も同じこと思いました。

ですが、RailsTutorialでここを読み飛ばして先に行ってしまうのと、

しっかりと暗記して、先へ進むのとでは、少なくとも100倍以上理解度が違います。

なぜかと言うと、この先何100回と、この図を使うときがくるからです。

頭の中でこの図を思い浮かべながら、「今、僕は④の流れをコードで書いている」と思いながら書くのと、

「魔法の呪文だぁ」「なんか知らないけど動いたぁ」「次いこー」って感じでコード書くのとでは、理解度が段違いです。

これを機に「MVCアーキテクチャの概念図」を頭に叩き込んでソラでかけるようになっておいてください。

以下、具体的な使い方です。参考になれば幸いです。
ユーザーの一覧画面を表示する際の例です。

①リクエスト(ブラウザ)からルーティングへ情報が送られる

routes.rb
# ルーティング
# リクエストから情報が詰まったカプセルが届きました
# どのコントローラーのどのアクションにそのボールを渡すかという情報がそこには入っています
# その情報を元にどこに仕事を渡すか、ルーティングが判断してカプセルを渡します
resources :users, only: :index

②ルーティングからコントローラーのアクションへ情報が送られる

users_controller.rb
class UsersController < ApplicationController
  # この段階で、indexさんに仕事を任せた状態
  # これからindexおじさんは仕事をしていきます
  def index
    # ③ ページ表示に必要なユーザ一覧データの貰い方を知っているUserモデルにデータ提供を依頼します
    # ④ 依頼を受けたモデルはallメソッドを使ってデータベースに「ユーザ一覧データくれ」と命令します
    # ⑤ データベースはモデルからきた命令に応じてデータを渡します
    # ⑥ Userモデルは依頼を達成するべく、ユーザ一覧をコントローラーに渡します(結果が@usersの中身
    @users = User.all
  end
end

⑦Usersビューおばさんに必要なデータを全部渡して、「完成されたページをください」と依頼する

views/users/index.html.erb
<%= @users.each do |user| %>
  <%= user.name %> | <%= user.email %>
<% end %>

⑧Users#indexビューおばさんはindex.html.erbテンプレートと渡されたデータを使って完成されたページを作成し、それをindexおじさんに渡します

⑨indexおじさんはそれをレスポンス(ブラウザに返すこと)しましたとさ。

ちゃんちゃん。

1
2
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
2