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

Rails 明示的でなくてもアクションが実行される理由

1
Last updated at Posted at 2026-06-30

イベントや学習過程で学んだことをアウトプットしようチャレンジ
📝第一弾(すべてを一回では厳しかったので何段階かに分けてまとめていく)
これから説明力や読みやすさを探求して少しづつ改善していけたらと思ってますので、もし興味があればお読みいただけますと幸いです。

明示的でなくてもアクションが実行される理由

def index
  @users = User.all
  
  /# renderが明示的に書かれていない?

end

理解できてきたポイントや新たに発生した疑問を自分なりにまとめてみた。(間違いやアドバイスあればご指摘いただけますと幸いです)

🤔復讐してみて

・設定より規約の意味がわかってきた

・Webページが表示されるまでの流れが具体的になってきた

・加えてドメインとパスの違いについてもおさらいした!

・HTTPリクエストとルーティングの関係性についても新たに学習

✅疑問

・HTTPリクエストとルーティングの関係性

Railsが内部で行っている処理(イメージ)の前段階

ユーザーがブラウザで localhost:3000/users にアクセス

ブラウザが HTTPリクエスト を生成してサーバーに送信

/# HTTPリクエストに含まれる情報:
GET /users HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0...
Cookie: session\_id=abc123
...

Railsサーバは受け取ったHTTPリクエストから以下の情報を取り出す

HTTPメソッド: GET
パス: /users


ルーティングでの振り分け(HTTPリクエストの情報を見て、どのコントローラーのどのアクションを実行するか決めること)

ルーティングの処理(config/routes.rb):

/# config/routes.rb
get '/users', to: 'users#index'
or
resources :users ← 7つのルーティングが自動で定義される(rails routesコマンドで確認できる)
/# ↑ HTTPメソッドとパスが一致!


UsersController の index アクションに振り分け

/# Railsが内部で行っている処理(イメージ)
def index
  @users = User.all
  
  /# renderが明示的に書かれていない?
  /# → じゃあ規約に従って探そう!
  /# → コントローラー名: users
  /# → アクション名: index
  /# → app/views/users/index.html.erb を探す
  /# → 見つかった! ビューをレンダリングしてHTMLを生成しよう
end


見つかったビューをレンダリングしてHTMLを生成

<!-- app/views/users/index.html.erb -->
<h1>ユーザー一覧</h1>
<ul>
  <% @users.each do |user| %>
    <li><%= user.name %></li>
  <% end %>
</ul>


このタイミングで:

一回のレンダリング処理 でHTMLを生成
ERBのコードが評価されて、最終的なHTMLに変換される(深くなってきたので一旦ここはスキップ)

/#生成されるHTML:

<h1>ユーザー一覧</h1>
<ul>
  <li>田中太郎</li>
  <li>佐藤花子</li>
  <li>鈴木一郎</li>
</ul>


ブラウザにレスポンスとして返す

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8

<html>
  <head>...</head>
  <body>
    <h1>ユーザー一覧</h1>
    <ul>
      <li>田中太郎</li>
      <li>佐藤花子</li>
      <li>鈴木一郎</li>
    </ul>
  </body>
</html>


このタイミングで:
生成されたHTMLをブラウザに送信

ブラウザがHTMLを受け取って表示

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