Ruby On Railsとは
オープンソースのWebアプリケーションフレームワークである。RoRまたは単にRailsと呼ばれる。その名にも示されているようにRubyで書かれている。またModel View Controller(MVC)アーキテクチャに基づいて構築されている。
Ruby_on_Rails - Wikipedia
初めてRubyに触れるので、Progateを使って学習してみました。忘れそうなことや頭を整理するために、記載しています。
Ruby on Rails5 - Progate
Railsアプリケーションの作成
以下コマンドにより必要なファルダ等が作成される
rails new app_name
ツリー構造
app_name/
├ app/
├ config/
├ db/
└ その他
サーバーの起動
rails server
###アプリ表示
サーバーを起動後に、ブラウザでlocalhost:3000
にアクセス
トップページの作成(新しくページを作るコマンド)
以下のコマンドにより自動でtop
というページが作成される
rails generate controller home top
以下のようにgenerate
をg
に省略可能
rails g controller home top
home: コントローラー名
top: アクション名
※すでにhomeコントローラーがある場合には別アクションでは使用不可
トップ画面localhost:3000/home/top
にアクセスできる
ページを表示するのに必要な3ファイル
- ビュー(view)
- コントローラー(controller)
- ルーティング(routing)
ビュー(view)
ビューとは、ページの「見た目」を作るためのHTMLファイルである
ブラウザとRailsのやりとりの中で、Railsからビューが返され、ページが表示される
ツリー構造
viewsフォルダの中にhomeフォルダ
とtop.html.erb
というファイルが作成される
app/ アプリケーションのメインフォルダ
└ view/ ビューフォルダ
│ ┌──────────┐
└ │ home/ │
│ └ top.html.erb │
└──────────┘
コントローラー(controller)
ページを表示するとき、Railsの中ではコントローラを経由してビューをブラウザに返している
ツリー構造
controllersフォルダの中にhome_controller.rb
というファイルが作成される
app/ アプリケーションのメインフォルダ
└ controllers/ コントローラーフォルダ
│ ┌──────────┐
└ │ home_controller.rb │
└──────────┘
rails generate controller home top
上記実行時にhome_controller.rb
というコントローラのファイルが作成される
ファイルの中にtopメソッド
が追加される
コントローラ内のメソッドをアクション
と呼ぶ
class HomeController < ApplicationController
def top
end
end
アクションは、コントローラと同じ名前のビューフォルダから、アクションと同じ名前のHTMLファイルを探してブラウザに返す
ルーティング(routing)
ルーティングはブラウザとコントローラを繋ぐ役割を担う
送信されたURLに対して「どのコントローラの、
どのアクション」で処理するかを決める「対応表」のこと
ページが表示されるまでに、ルーティング→コントローラ→ビュー
という順で処理
トップ画面localhost:3000/home/top
にアクセスした時を例に考えてみよう
- URL(home/top)に対応するHTMLファイルをリクエスト
ルーティング(対応表)
URL | コントローラ | アクション |
---|---|---|
home/top | home | top |
︙ | ︙ | ︙ |
2.homeコントローラーのtopアクションを呼び出す
3.URLに対応したHTMLファイルを送信
ツリー構造
configフォルダの中にroutes.rb
というファイルが作成される
config/ 設定情報に関するフォルダ
│ ┌────────┐
└ │ routes.rb │
└────────┘
Rails.application.routes.draw do
get "home/top" => "home#top"
end
まとめ
初めてRubyOnRailsを学習しました。
学習して、改めて整理すると意外とわかりやすいと思いました。これからも追加で記事を作成していきます。
##参考サイト
ディレクトリ構成図を書くときに便利な記号
https://qiita.com/paty-fakename/items/c82ed27b4070feeceff6
Markdown記法 サンプル集
https://qiita.com/tbpgr/items/989c6badefff69377da7
Qiitaのテーブルの書き方についてまとめた
https://qiita.com/zakuroishikuro/items/f33929eab9d55c5bd073