2020年7月31日より「押さえておきたいWeb知識」をリニューアルしました。

Railsのコンポーネントを分かりやすく解説します!

Ruby on Railsを使用してWebアプリケーションを作っていこうとするとRailsというフレームワークの構造、仕組み、フレームワークの要素の役割をしっかりと理解する必要があります。

そこで、このページではRailsというフレームワークの要素を詳しく見ていきます。

最後まで読んで頂くと、自分でWebアプリケーションを作ろうとした時の一助になるかと思います。

是非、読んで頂けたらと思います。

 




 

Railsのコンポーネントを理解するためにはWebアプリケーションがどのように動いているかを把握する必要があります。

そこでまず始めにWebアプリケーションの仕組みを理解することから始めましょう。

基本的にWebアプリケーションはクライアントからHTTPリクエストを送り、サーバーがHTTPレスポンスを返すことで動いています。

Railsでは基本的にサーバー側のアプリケーションは3つの機能に分かれています。

この3つの機能に分かれている仕組みをMVCモデルと呼びます。

Mは「Model(モデル)」、Vは「View(ビュー)」、Cは「Controller(コントローラー)」の頭文字をつけて名付けられています。

次にこれらの3つの機能がどのような役割を担っているのか見ていきましょう。

Model データベース管理を行う役割を担っている
View 画面などのユーザーインターフェースに関する役割を担っている
Controller クライアントからのHTTPリクエストに応じてModelやViewに指示を出す役割を担っている

このようにRailsというフレームワークはMVCモデルといった考え方によって実装されていきます。

もし、Ruby on Railsとは何か、Webアプリケーションの仕組みをもっと詳しく知りたい方は以下の記事をご覧下さい。

[入門者向け] Ruby on railsとは? 分かりやすく解説!

 




 

2.Railsのコンポーネント

次にRailsを構成するコンポーネントを紹介していきます。

Rails5.2は以下のようなコンポーネントで構成されています。

 1.Active Record

Active RecordはModelの機能を提供しており、データベースとモデルを連携する役割を担っています。

例えば、以下のような役割を担っています。

・マッピング

・アソシエーション

・バリデーション

・コールバック

・マイグレーション

2.Active Model

Active Modelはバリデーション、コールバックなどの機能を利用したい時にモジュールとして組み込むことができます。

3.Action View

ビューテンプレートに対し、データの埋め込みやレンダリング機能を提供します。

4.Action Pack

Action PackはAction DispatchとAction Controllerという2つのコンポーネントを含んでいます。

Action Dispatchはルーター機能を、Action Controllerはコントローラー機能を提供します。

5.Action Mailer

メールの送受信においてクライアント制御機能、メールテンプレート生成機能を提供します。

6.Action Cable

Rails5から実装されたコンポーネントです。

チャットのようなリアルタイム通信機能を提供します。

7.Active Job

バックグラウンドで実行できる非同期なジョブ生成機能、待ち行列管理などの管理機能を提供します。

8.Active Support

Rubyの拡張メソッドなどを提供します。

9.Active Storage

Rails5.2から実装されたコンポーネントです。

Active Recordと連携した画像・動画などのアップロード、参照機能を提供します。

10.Railties

Railsフレームワークの中心となるコンポーネントです。

アプリケーション起動プロセスを管理し、コマンド実行のインターフェース、アプリケーション構成要素の生成機能を提供します。

 




 

3.Railsが備えているツールやライブラリ

通常、Webアプリケーションを開発する時、Webサーバー環境・データベース環境を構築する必要がありますが、Railsではデフォルトで以下のようなツールとライブラリを備えています。

1.Puma

PumaはWebサーバーの一つとなっています。

Rails5ではデフォルトのWebサーバーとしてGemfileに組み込まれており、開発時にすぐにWebアプリケーションを確認することができます。

2.Rack

RackはRubyが使用可能なWebサーバーとRubyのフレームワークを接続するインターフェースとなっています。

3.ERB

ERBはビューテンプレートに組み込むためのRubyスクリプトです。

拡張子を「.erb」とすることで組み込まれているRubyのコードを実行して値の埋め込みを行います。

4.SQLite3

SQLite3はデータベースのことをさしています。

5.Rake

RakeはRubyで作成されたビルド用のツールとなっています。

Rakeはデータベースのマイグレーションを行う時に使用します。

 




 

4.Ruby on Railsを学ぶことができるオススメの教材

Ruby on Railsを学習している皆様にオススメの教材をご紹介させていただきます。

現場で使える Ruby on Rails 5速習実践ガイド

以下の本はRuby on Railsの学習を一通り終えてある程度知識を身につけた方にオススメしたい本です。

 

現場で使える Ruby on Rails 5速習実践ガイド」は現場で実際にどのように使われているのかという視点も交えて解説されています。

そのため、初心者の方が次のステップに進むために最適な本となっていますので、オススメです。

これらの本で是非学習を進めてみてはいかがでしょうか?

レベル別におすすめの本も紹介していますので、どのような本がオススメか知りたい方はこちらもご覧になって下さい。

[2020年最新版] Ruby on Rails を学ぶことができるおすすめの本

Udemy

UdemyではRuby on Railsを学ぶことができる講座を多数取り扱っています。

以下の記事でRuby on Railsを学ぶことができるオススメの講座をまとめていますので、よかったらご覧になって下さい。

[必見!] Udemy(ユーデミー) おすすめのRuby on Rails講座

プログラミングスクール

TechAcademyWebCampCodeCampなどでRuby on Railsを学ぶことができます。

それぞれ無料体験も行っているので、どのようなものか試してみるのもいいでしょう。

以下の記事で各プログラミングスクールをまとめているのでこちらもよかったらご覧になってください。

プログラミングスクール TechAcademy(テックアカデミー)とは? 特徴・口コミをまとめてみました! プログラミングスクール DMM WebCamp ビジネス教養コースとは? 特徴・口コミをまとめてみました! プログラミングスクール CodeCamp(コードキャンプ)とは? 特徴・料金・口コミをまとめてみました!

 




 

5.ポイント

・Railsでは基本的にサーバー側のアプリケーションはModel、View、Controllerの3つの機能に分かれています。

・RailsではActive Record、Active Model、Action View、Action Pack、Action Mailer、Action Cable、Active Job、Active Support、Active Storage、Railtiesのコンポーネントで構成されています。

・RailsではPuma、Rack、ERB、SQLite3、Rakeのツールやライブラリが備わっています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です