- English
- 日本語
Ruby on Railsを知っている人
Ruby on Railsを使用してWebアプリケーションを作っていこうとするとRailsというフレームワークの構造、仕組み、フレームワークの要素の役割をしっかりと理解する必要があります。
そこで、このページではRailsというフレームワークの要素を詳しく見ていきます。
最後まで読んで頂くと、自分でWebアプリケーションを作ろうとした時の一助になるかと思います。
是非、読んで頂けたらと思います。
\単月定額と比べて総額最大48,000円OFF!/
学び応援キャンペーン実施中!
【超安心】1か月間全額返金保証付き
以下のプログラミングスクールもオススメです。
是非検討してみてはいかがでしょうか?
- 侍テラコヤ(初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら)
⇒ 学び応援キャンペーンでお得に申し込む!
・コスパ最高! 月額2,980円〜利用できる!
・単月定額と比べて総額最大44,400円OFF!
・学び応援キャンペーン実施中!
- TechAcademy
⇒ 無料体験レッスンに申し込む!
・Ruby/Ruby on Railsだけでなく、Git/GitHub、HTML/CSS、Bootstrap、SQL、Heroku、Web API、Vue.jsなど幅広く学ぶことができる
・今まで得た知識をアウトプットするために自分の作りたいWebサービスを作る
・無料体験レッスン実施中!
Ruby on Railsを知っている人
目次
Webアプリケーションの仕組み
Ruby on Railsを知っている人
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モデルといった考え方によって実装されていきます。
Railsのコンポーネント
Ruby on Railsを知っている人
次にRailsを構成するコンポーネントを紹介していきます。
Rails5.2は以下のようなコンポーネントで構成されています。
Active Record
Active RecordはModelの機能を提供しており、データベースとモデルを連携する役割を担っています。
例えば、以下のような役割を担っています。
- マッピング
- アソシエーション
- バリデーション
- コールバック
- マイグレーション
Active Model
Active Modelはバリデーション、コールバックなどの機能を利用したい時にモジュールとして組み込むことができます。
Action View
ビューテンプレートに対し、データの埋め込みやレンダリング機能を提供します。
Action Pack
Action PackはAction DispatchとAction Controllerという2つのコンポーネントを含んでいます。
Action Dispatchはルーター機能を、Action Controllerはコントローラー機能を提供します。
Action Mailer
メールの送受信においてクライアント制御機能、メールテンプレート生成機能を提供します。
Action Cable
Rails5から実装されたコンポーネントです。
チャットのようなリアルタイム通信機能を提供します。
Active Job
バックグラウンドで実行できる非同期なジョブ生成機能、待ち行列管理などの管理機能を提供します。
Active Support
Rubyの拡張メソッドなどを提供します。
Active Storage
Rails5.2から実装されたコンポーネントです。
Active Recordと連携した画像・動画などのアップロード、参照機能を提供します。
Railties
Railsフレームワークの中心となるコンポーネントです。
アプリケーション起動プロセスを管理し、コマンド実行のインターフェース、アプリケーション構成要素の生成機能を提供します。
Railsが備えているツールやライブラリ
Ruby on Railsを知っている人
通常、Webアプリケーションを開発する時、Webサーバー環境・データベース環境を構築する必要がありますが、Railsではデフォルトで以下のようなツールとライブラリを備えています。
Puma
PumaはWebサーバーの一つとなっています。
Rails5ではデフォルトのWebサーバーとしてGemfileに組み込まれており、開発時にすぐにWebアプリケーションを確認することができます。
Rack
RackはRubyが使用可能なWebサーバーとRubyのフレームワークを接続するインターフェースとなっています。
ERB
ERBはビューテンプレートに組み込むためのRubyスクリプトです。
拡張子を「.erb」とすることで組み込まれているRubyのコードを実行して値の埋め込みを行います。
SQLite3
SQLite3はデータベースのことをさしています。
Rake
RakeはRubyで作成されたビルド用のツールとなっています。
Rakeはデータベースのマイグレーションを行う時に使用します。
Ruby on Railsを学ぶことができるオススメの教材
Ruby on Railsを知っている人
Ruby on Railsを学ぶのにオススメの参考書をみていきましょう。
Ruby on Rails 6 実践ガイド impress top gearシリーズ
本書では、1つの企業向け顧客管理システムを作る過程で、RailsによるWebアプリケーション開発の基礎知識とさまざまなノウハウを習得していきます。
各章末には演習問題が設けられているので、理解度を確かめながら確実に読み進められます。
Ruby on Railsを知っている人
Ruby on Rails 6 実践ガイド[機能拡張編]
本書は、2019年12月に出版された『Ruby on Rails 6実践ガイド』の続編です。
本編で作成した企業向け顧客管理システムBaukis2の機能をさらに拡張し、実用性の高いシステムにしていきます。
本書のテーマは多岐にわたります。
クッキー、リクエスト元のIPアドレス、Ajax、データベーストランザクション、排他的ロック、ツリー構造のデータなど、さまざまなWebアプリケーションに必須の機能を実装しながら解説します。
また、この機能拡張編では、HTMLフォームのさまざまなバリエーションを紹介しています。
特にRailsで業務システムを開発する場合、要求仕様に応じて自由にHTMLフォームを設計・実装する力が求められます。
本書では、さまざまなフォーム設計の事例を扱っていますので、一種のレシピ集として活用できます。
Ruby on Railsを知っている人
パーフェクト Ruby on Rails 【増補改訂版】
新しいRailsのバージョンでサポートされた機能の紹介だけでなく、Dockerでの導入方法など最新の実践的内容を追加し、現在のトレンドとなる開発スタイルを紹介します。
Ruby on Railsを知っている人
まとめ
Ruby on Railsを知っている人
最後まで読んで頂きまして、ありがとうございました。
今回のポイントは以下の通りです。
- 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のツールやライブラリが備わっています。
途中で分からないことがあり、中々進まないこともあると思います。
しかし、順を追って学習を進めていけば、必ずできるようになるのであきらめず最後までやりぬきましょう!