RubyOnRails 概要
railsはMVCモデルと言われ、Model(データベースを操作する役割)、Controller(ブラウザへhtmlファイルを渡す役割)、Views(ウェブサイトを表示させるファイルを作成する役割(htmlなどで記述))を中心としてwebアプリケーションを簡単に作成できるRubyで書かれたパッケージである。
webサイトを表示する簡単な流れ
- ユーザーがwebサイトを閲覧するとき、webサイト(アプリケーション)が格納されているサーバーに対してリクエスト(見ようとするページのURL)を送信する。
- routingがroutes.rbファイルからリクエスト(url)と一致するコントローラー内のアクションを探し出す。
- アクションに定義した処理を行い、modelを経由してデータベースからデータを引っ張ってくる。
- アクションまで引っ張ってきたデータを、対応するviewsに渡して、viewsを.html.erbから.htmlファイルへ変換(*1)してブラウザに渡す。
*1. プリプロセッサ・エンジン
.erbや.scssや.coffeeなどの拡張子を持っているファイルを変換するエンジン。例えば、example.html.erbなどは.erbのファイルをhtmlファイルへ変換し、ブラウザに渡す際にはexample.htmlのファイルとなる。
Railsの主要ファイルを作成するコマンド
$ rails generate controller static_pages home help
$ rails destroy controller static_pages home help
1番目のコマンドはコントローラー内にアクションを自動生成までしてくれるコマンドになる。アクション名を自動生成するとルーティングとviewsファイルまで自動で生成してくれるため、非常に便利で手動で作成した場合の名前間違いなどのミスを減らせる。また、コントローラー名まで書いた場合は中身が空のコントローラーが生成される。
2番目のコマンドはコントローラーを作成した際に、それらの生成したファイルをキャンセルしてくれるコマンド。自動生成した場合、ルーティング内とviewsファイルまでが作成されるため、手動でひとつひとつ削除する面倒な作業を省いてくれる。ただし、アクションやviewsをある程度作成してしまうと、ファイル自体が削除されてしまうため自動生成直後までしか使用できない。
Railsの静的ページの作成手順
上記で自動生成したファイルを以下の手順を踏むことで、Railsでサイトを作成することができる。
- routes.rb (ルーティング)
↓ urlを書いてそれに対応するアクション名を記述 - examples_controller.rb (コントローラー)
↓ アクション内に変数を定義する - examples/example.html.erb (views)
htmlでブラウザに表示する内容を記述していく
Railsでは、主に上記3ファイルを中心に編集していくことで、webアプリケーション(webサイト)を作成していく。
1)routes.rb (ルーティング)
Rails.application.routes.draw do
# prefixでのルートパスの指定
root 'static_pages#home'
# 名前付ルーティング(as:で指定することでprefixを指定することができる)
get 'static_pages/help', to:'static_pages#help', as:'help'
end
2)static_pages_controller.rb (コントローラー)
class StaticPagesController < ApplicationController
def home
end
def help
end
end
3)home.html.erb (views)
<h1>Welcome to the Sample App</h1>
以上の流れで静的なページを作成することができる。