4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby on Rails でページを作成する仕組み

Last updated at Posted at 2018-08-15

#はじめに
ページがブラウザに表示されるまでに、**ルーティング→コントローラ(C)→モデル(M)→ビュー(V)**という順で処理が行われている。
モデルはデータベースの情報が必要な時だけ使用するため、必要じゃない時はとばす。
railsはMVCアーキテクチャ(MVCモデル)という設計法に基づいて開発を行う。※MVCは上記頭文字

#ページ作成に必要なものについて

##①ルーティング<ブラウザとコントローラをつなぐ>
config/locales/routes.rb (コンフィグフォルダのローカルフォルダのルーツファイルに置かれる)

ユーザーが送信したURLに対して「どのコントローラの、どのアクション」で処理するかを決める「対応表」

ex.)ブラウザでURL(localhost:3000/home/top)を入力すると、homeコントローラーのtopアクションで処理される

get "home/top" => "home#top"  
 リクエスト=>"コントローラ#アクション"

##②コントローラ <モデルとビューをつなぐ>
app/controllers (アプリケーションのメインフォルダのコントローラフォルダに置かれる)
Viewからの入力に応じて、必要なロジックの実行をModelに依頼し、その結果表示をViewに依頼する。

                          
ex.)「rails generate controller home top」を実行したとき、「home_controller.rb」というコントローラのファイルが作成され、ファイルの中に「topメソッド」が追加される。
コントローラ内のメソッドを「アクション」と呼ぶ。

#アクション

def top         
end                              

アクションは、コントローラと同じ名前のビューフォルダから、アクションと同じ名前のHTMLファイルを探してブラウザに返す。

app/views/home/top.html.erb ←ここにかいてある情報をブラウザに映し出す。

##③モデル<データベースを操作>
app/models(アプリケーションのメインフォルダのモデルフォルダに置かれる)

モデルはデータベースに含まれるテーブル毎に用意され、データベースに対してデータの登録・取得・更新・削除などを行うことができる。

##④ビュー<ページの見た目を作る>
app/views (アプリケーションのメインフォルダのビューフォルダに置かれる)
ビューに書いてあること(HTML)がブラウザに表示されるのでビューを編集すると表示する内容を変えることができる。

この流れで処理が行われることによってユーザーは欲しい情報を得ることができる:fist_tone2:

〜上記に記載したディレクトリ、ファイルの概要〜
①/config..アプリケーションの設定情報を格納する
   /routes.rb..ルーティングの設定を行う
   /locales..辞書ファイル(グローバル対応等)

②/app ..アプリケーション開発中にメインで使用するディレクトリ
    /controllers..Controller クラスを格納する

③/models.. Modelクラスを格納する

④/views..View クラスを格納する

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?