1
0

More than 5 years have passed since last update.

Ruby on Rails ページ の 表示 に 必要 な ファイル の関係性

Last updated at Posted at 2019-08-08

目的

  • Ruby on Railsでページを表示するのに必要なファイルについてまとめる
    ※本記事はRuby on Rails超初心者の筆者がまとめたものです。情報が正確ではない可能性があります。優しくコメントをくださると幸いです。。。ごめんなさい!!

ページを表示するのに必要なファイルは基本的に3ファイル

  1. ビュー(view)ファイル
  2. コントローラ(controller)ファイル
  3. ルーティング(routing)ファイル

新しいページを作るコマンド

  • この後の説明で使うので定義する。
  • URL localhost:3000/home/top にアクセスできるようになる。
  • homeがビューファイルが格納されるフォルダ名。
  • topがビューファイルのファイル名。
$ rails generate controller home top

ページ表示のフロー

  • 下記に簡単なフローを記載する
  • 雑な図なのでこれだけでの理解は不可能 ※必要ファイルの詳細と合わせて行ったり来たりしてみてください。。。 フローチャート.jpeg

必要なファイルの詳細

ビュー(view)ファイル

  • ページの見た目を作るHTMLファイルのこと。
  • 前述の「新しいページを作るコマンド」を実行するとビューファイルは下記に作成される。
    apps/views/home/top.html.erb
  • ちょっと拡張子が普通のHTMLとは異なるけどファイル記法はHTMLと一緒。
  • ビューファイルの名前は必ず「~.html.erb」となる。

コントローラ(controller)ファイル

  • 前述の「新しいページを作るコマンド」を実行するとコントローラファイルは下記に作成される。
    apps/controller/home_controller.rb
    ※下記の内容は必ずしもすべてのコントローラファイルに当てはまるわけではない。
  • 中にはメソッドが書かれている。
  • コントローラファイルに書かれるメソッドの事をアクションと呼ぶ。
  • コントローラファイルの名前は必ず「~_controller.rb」となる。
  • コントローラファイル名はビューファイルの格納されているフォルダ名を指す。
  • アクションに書かれているメソッドはビューファイルのファイル名を指す。
  • Railsはコントローラファイルを経由してビューをブラウザに渡している(これは深く考えない事)
  • コントローラファイルの記載例

    class HomeController < ApplicationControlloer
      #ここから
      def top
      end
      #ここがアクション
    end
    

ルーティング(routing)ファイル

  • 前述の「新しいページを作るコマンド」を実行するとルーティングファイルは下記に作成される。
    config/routes.rb
    ※下記の内容は必ずしもすべてのコントローラファイルに当てはまるわけではない。
  • URLとコントローラファイル名とアクションを結び付けている。
  • このURLが来たときはこのコントローラ名のこのアクションね~という感じ。
  • ルーティングファイルに記載されていないURLがブラウザからRailsに要求されるとエラー。
  • ルーティングファイルの記載例

    localhost:3000/home/topがブラウザから要求されたときにコントローラ名ファイル名homeのアクション名topで処理される。

    Rails.applicaitonroutes.draw do
      #    URL            コントローラファイル名#アクション名
      get "home/top" = > "home#top"
    end
    
1
0
2

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