Ruby on Railsとは?基礎知識から具体的に解説!プログラミング初心者でも分かる!

アイキャッチ画像

「よく聞く『Ruby on Rails』って一体なんのこと?」「Webサイトを作る時に使うらしいけどHTMLとは違うの?」そんな疑問をお持ちのあなたへ。この記事では、Ruby on Railsについて0から読み解いていきます。

プログラミングに触れたことがない方でも分かるよう、基礎知識も含めて解説していきますので、一緒にRuby on Railsに詳しくなっていきましょう!

Ruby on Railsを学ぶならGeekSalon!

GeekSalon
  • 受講生数1.2万人突破!満足度は95.5%
  • 継続率約80%!同世代の仲間と学ぶから挫折しない!
  • 大学生向けの安価な料金!
GeekSalonについて詳しく知る

Ruby on Railsって一体なんのこと?

ややこしい説明を一旦省略して一言でまとめると、Ruby on Railsは「Ruby」というプログラミング言語のWebフレームワークのことです。

プログラミング言語「Ruby」のWebフレームワーク?

知らない単語が並んでいると感じる方もいらっしゃるでしょう。もう少し噛み砕くと、Webサイトを作る際に0から全て作るのは大変なのでRuby on Railsに頼ると簡単にいいものが作れる、というイメージです。

きちんと理解できるよう、「プログラミング言語」「Ruby」「Webフレームワーク」それぞれに分割し、説明していきます。

プログラミング言語とは

そもそもプログラミング言語とは、コンピュータに命令するために使われる言葉です。実世界に例えてみましょう。母語が日本語のあなたが、母語がフランス語のAさんと話したいとします。フランス語が話せないと会話は難しいでしょう。しかし、2人とも英語が話せたらどうでしょう。英語を介して意思疎通が図れます。

あなたは伝えたいことを日本語から英語に変換して話し、Aさんはその英語をフランス語に変換して理解します。つまり英語がこの2人の媒介となっているのです。ここでいう英語がプログラミング言語にあたります。

コンピュータの母語は機械語という、0と1だけで書かれた言葉です。人間がこれを書くのは大変ですので、人間の言葉と機械語をつなぐ架け橋としてプログラミング言語が存在します。人間もプログラミング言語なら(機械語よりは)理解しやすく、コンピュータもプログラミング言語なら機械語に翻訳できる仕組み(コンパイラといいます)があります。

よって、プログラミング言語とは人間とコンピュータの間を取り持つ言語で、人間とコンピュータがお互いの意図を伝えるために歩み寄って間に生まれた言語といえるでしょう。

Rubyとは

Rubyとは、そんなプログラミング言語の一種です。Bさんの母語が韓国語で、あなたもBさんも中国語が話せるとしたら中国語で会話しますよね。同様に、プログラミング言語にも媒介となる言語がいくつもあるのです。

現実の言語ごとに特徴があるように、プログラミング言語もそれぞれ得意が違います。Rubyは「プログラミングを楽しくすること」をポリシーとして掲げ、「Human Oriented Language(人に根差した言語)」、つまり人が書きやすく読みやすい言語として作られています。例えば、以下がRubyのコードなのですが、これで「こんにちは」と表示させることができます。

print 'こんにちは'

「printだから印刷とか何か表示したりするのかな」と、Rubyを詳しく知らなくてもなんとなくで理解しやすいのではないでしょうか。このように、Rubyは初心者でも比較的習得しやすく、人気が高い言語です。

Webフレームワークとは

フレームワークとは、開発を簡単にする枠組み・テンプレートのようなものです。その中でもWebフレームワークはWebサイトやWebアプリ向けになっています。フレームワークがあることで初心者でもWebサイトが作りやすくなり、完成度も上がります。

ケーキ作りに例えてみましょう。Rubyは非常に万能なキッチンで、フレームワークはケーキ作りセットと言えます。調理道具やケーキの型、レシピが一通り揃えられたセットです。もしセットがなければ、キッチンが万能であるが故に自由度が高すぎて、何をどうすればケーキが作れるのか混乱してしまいます。一方でセットがあれば、それに従って材料を揃えたり調理を進めたり、場合によってはデコレーションまで綺麗にできたりするでしょう。

つまりWebフレームワークとは、Webサイトというケーキを作るために用意された便利なケーキ作りセットです。中でもRuby on RailsはWeb開発において特に人気の高いフレームワークですので、Ruby on Railsは人気も売上も高くて安心と信頼感のあるセットと言えるでしょう。

【初心者向け】Ruby on RailsとRubyの違いは?Web開発の手順を解説!
関連記事【初心者向け】Ruby on RailsとRubyの違いは?Web開発の手順を解説!

Ruby on Railsの特徴

Ruby on RailsはWeb開発が得意なフレームワークです。名前の由来はそのまま「線路」を意味する「レール」です。レールに沿って進めば列車が速く効率よく走れるように、Ruby on Railsフレームワークに従えば開発がしやすくなるという意図でつけられました(諸説あり)。なお、Ruby on Railsは「Rails」という略称で親しまれています。

誕生したのは2004年で、実に20年以上Web開発に活用されています。

HTMLとの違い

Web開発といえばHTMLですが、RailsもWeb開発に用いられます。そもそもRailsとHTMLはそれぞれどんなものなのでしょうか?簡単にいうと、HTMLで書かれたコードは材料でRailsは調理器具です。

HTMLだけでもサイトを作れはしますが、それは例えるならレタスとハムをそのままパンで挟んだだけのサンドイッチのようなものです。道具がなくても作れる最低限のものしか作れません。そこにRailsという調理器具が用意されると、サンドイッチはホットサンドにもなりますし、グラタンやケーキなどの凝った料理も作れるようになります。

Webフレームワークとは」の例えと合わせると、Rubyという何でもできるキッチンの中で、HTMLのコードというケーキの材料を、Railsというケーキ作りセットで調理していくのです。

そして1つややこしい注意点があるのですが、Railsで成形されたコードはHTMLとして出力されてWebページになるということです。ブラウザはHTMLの構文で書かれたものを見てWebサイトだと理解するため、理解させるために最終的にHTMLになる、ということです。大枠で見ると材料である「スポンジ」や「いちご」も完成品である「ケーキ」も、「食べ物」という括りができます。HTMLという食べ物に手を加えてHTMLという食べ物を完成させた、と考えると良いでしょう。

Ruby on Railsでできること

Railsを使うと、例えば以下を開発できます。

RailsはWeb開発を効率的に進める手助けをしてくれます。HTMLやCSS、JavaScriptと組み合わせて使えばクオリティの高いサイトも作れるでしょう。

Ruby on Railsでできることを初心者向けに解説【Webアプリの実例紹介】
関連記事Ruby on Railsでできることを初心者向けに解説【Webアプリの実例紹介】

Ruby on Railsで開発されたサイト

全国にある約90万件の飲食店の情報・口コミを掲載している食べログや、世界175か国以上・100万以上の店舗で利用されている世界トップシェアのECプラットフォーム(ネットショップを構築できるツール)であるShopifyなど、信頼性のある巨大なサービスもRailsを用いて開発されています。

また、Xの開発にもRailsは活用されていることから、RailsがSNS開発にも向いていることが分かると思います。

そしてプログラミングをするようになったら必ず使うことになるであろうGitHubというサイトもRailsで開発されています。世界中の開発者がプログラムのコードをオンライン上で保存・管理・共有できるソフトウェア開発プラットフォームで、ほとんどの企業がGitHubを使用していると考えて良いでしょう。

Ruby on Railsの将来性

AIが台頭している昨今、Railsに将来性があるかどうかは気になるポイントです。結論から言うと、Railsで開発されたwebサイトやアプリなどが無くなるまではRubyの需要が尽きることもありません。Railsで開発したものを別言語に置き換えるのも手間と時間がかかりますので、全てのサイトが大改修でもしない限り、基本的にRailsで作られたものはRailsで保守・運用されるでしょう。

もちろん、新たにwebサイトを開発する上でもRailsは使われるはずです。Railsのきちんとした骨組みがあることで、初心者がwebサイトを作る際に重宝されることはもちろん、AIでコードを生成する際もRailsの骨組みに沿って生成してくれるというメリットがあります。AI初心者にありがちなミスとして、パスワードなどの重要な情報を外から見られるファイルに置いたままにしてしまうということがあります。Railsはどこに何を置くべきかが基本的に決められているため、AIもRailsに沿って組み立てさせればそのミスは起こりづらくなるでしょう。

求人数もまだまだ多く、需要の高さがうかがえます。よって、簡単にRubyの需要が落ちることはなく、将来性が見込める言語であるといえるでしょう。

Ruby on Railsの基礎知識

Railsの特徴がわかったところで、以下のRailsの基礎知識を学んでみましょう。

これらを知っておくとRailsの構造や仕組みが理解しやすくなるはずです。それぞれ説明していきます。

DRY原則に従う

DRY原則とは、「Don’t Repeat Yourself」の頭文字をとったものであり、「同じコードを繰り返さない」ということを意味しています。1箇所にまとめて処理を共通化することで、効率的な開発ができるのです。

同じコードが複数の場所に散らばっていると困ることとして、例えば消費税を考えましょう。金額を計算するコードを複数の場所に書いており、全ての計算式で8%、つまり1.08をかける式を書いていたとします。消費税が10%に上がったり、または5%に下がったりした場合、全てのコードを辿って全ての式の1.08を1.1にしたり1.05にしたりしなければならなくなってしまいます。これでは大変ですよね。

一箇所を修正すれば済むように、例えばtaxという定数を作っておき計算では数字ではなくtaxを呼び出すようにして消費税が変わった際はtaxの値を修正するだけで良くしたり、そもそも金額の計算は税抜き価格 * taxで計算させるというメソッドを用意して計算時はメソッドを呼び出すだけで済むようにしたりするのです。

RailsではこのDRY原則を実現するため、MVCモデルを採用しています。MVCモデルについて説明します。

MVCモデルを採用

MVCモデル(MVCフレームワークとも呼ばれます)とは、Model、View、Controllerのそれぞれの頭文字を取ったもので、DRY原則に従うべく設計された概念です。

それぞれの役割を簡単に説明すると以下の通りです。なお、データベースとは必要な情報を蓄積している情報の集まりのことで、データベースにアクセスするには何かしらの手続きが必要という前提で考えてください。

それぞれに役割を持たせて独立させることで、同じ処理を繰り返し行わないようにしているのです。では、互いにどのように関わってアプリが動いているのか、詳しくみてみましょう。

Railsアプリケーションは、クライアント(webページを見る人)にページを表示するまでの間に、まずルーティング(Routes)という処理を行います。https://~のようなURLを受け取り、どのサイトを表示するかなどの経路を考える処理です。このルーティングの後、コントローラーが処理を行います。図にすると以下の通りです。

MVCモデルの概要の図

コントローラーがその名の通り、指揮官のように必要な情報をコントロールして仲介する役割を担っています。ルーティングの結果「こういうデータがいる」と分かった場合はモデルに連携してデータをとってきてもらい、その情報をビューに渡してページを作成してもらうのです。私たちが見ているwebページは、それらの処理を終えて返されたビューなのです。

Active Record

Active Recordとは、MVCモデルでいうモデルとデータベースとのやり取りに関わる機能です。一言でいうと、RubyとSQLという言語の翻訳を行っています。基本的に、データベースはSQLという言語で書かれており、SQLで記述しないとデータを取得できません。しかしRailsにはActive Recordという機能があることで、データを取得する処理をRuby言語で書いてもSQL言語に自動翻訳してくれて、簡単にデータを取得できるのです。

データを1つ持ってくるだけでなく、たくさんのデータの中からある条件に合致するデータのみに絞ったり、Rubyからデータを更新・削除したりすることもできます。データベースの基本的な4つの機能であるCRUD(「作成(Create)」、「読み取り(Read)」、「更新(Update)」、「削除(Delete)」の頭文字を取った言葉)が実現できるよう、Active Recordはいくつもメソッドを用意しているのです。

Ruby on Railsで開発するメリット・デメリット

Railsを使うメリットとデメリットをそれぞれ3つずつ見ていきましょう。

Ruby on Railsのメリット3選

初心者でも扱いやすい

Railsは初心者でも学びやすく扱いやすいフレームワークです。決まっている骨組みに従えばクオリティの高いサイトが作れるため、初心者からも上級者からも人気があります。

「webサイトを作ろう」と思った時もHTMLだけで作ろうとすると質素なものになりますが、Railsと組み合わせて作ることで一段見た目のレベルが上がるため、モチベーションが大事になる初心者にこそRailsはオススメです。

gemが豊富

Rubyには、gemというものが豊富に用意されています。gemとは、他の言語でいうライブラリやフレームワークのことであり、Ruby on RailsもRubyのgemの一種です。便利な機能や骨組みなどをまとめたものをRubyではgemと呼んでおり、これを使うことで効率的に開発できます。

そのため初心者でもgemを使えば、自分では実装できないような複雑な機能も利用することができるのです。Railsで骨組みを作りつつ、必要な機能は他のgemを活用すれば簡単に開発できます。

HTMLと相性がいい

Railsでwebサイトを構築するにはHTMLを書く必要があります。HTMLをRailsで加工してwebサイトとしての見栄えなどを整えている、というようなイメージです。

RailsではHTMLを書きやすいように配慮おり、HTMLを知っていればRailsでHTMLを書く際もそこまで苦労はしません。「自分の知っているHTMLと書き方が大きく違う」というストレスが少ないため、開発も進めやすいのです。

Ruby on Railsのデメリット3選

大規模開発には向かない

Railsは開発がしやすいように、「Ruby on Railsの基礎知識」で述べたような原則や規約が定められています。これが大規模開発の際には逆に足枷となり、余計な手間がかかってしまうことがあります。

例えばDRY原則に従い同じコードを繰り返さないように書くのがRailsの特徴ですが、開発の規模が大きくなると単一のコードに依存し過ぎてしまうという状態はあまり良いとはいえません。Railsを用いて開発するならば、小〜中規模のアプリが良いでしょう。

処理がやや遅い

RailsというよりRubyの言語的特徴として、処理速度が遅いことが挙げられます。Rubyはインタプリタ言語というコードを1行ずつ翻訳しながら実行する言語であるため、その分時間がかかってしまいます。また、複数の処理を並列に実行できないのもRubyの特徴で、いくつかの処理を同時に動かしたい場合には不利でしょう。

機械学習には不向き

最近注目されているAIや機械学習に、Railsは向いているとはいえません。そもそも近年の機械学習にはほとんどPythonという言語が使われています。そのため、「自分でAIを開発したい」「AIを活用したサイトを作りたい」と考えているならば、Rails以外を用いるのが適切でしょう。なお、AIにRubyのコードを書かせるのは別の事象であり、開発にAIを用いるのは十分可能です。

Ruby on Railsの学習方法

Railsに詳しくなったところで、学び方をいくつかご紹介します。

本で学ぶ

Railsを学習できる本はたくさん存在します。実際にwebサイトを作りながら学んでいくものや、HTMLも含めた基礎から学べるものまで様々です。あなたに合ったレベル感や教え方をしている書籍を選ぶと良いでしょう。

紙の本か電子書籍かも気にするといいでしょう。紙ならばPCでは開発中のページを開きながら横で本を開けるため、PC上で本とページを行ったり来たりする手間が減らせます。一方で電子書籍ならば、ものによっては語句で検索できるため、どんな意味の語句だったか忘れた場合もすぐに解説ページにジャンプできます。

なお、書籍で学ぶ注意点として、情報が古い可能性があることに注意しましょう。webの情報などとは違い、本は改訂に時間がかかります。そのため出版年やその本におけるRailsのバージョンなどをチェックしてから購入すると良いでしょう。

webサイトで学ぶ

webサイト上でRailsを学ぶこともできます。様々な言語が用意されている学習サイトはもちろん、Railsに特化したサイトもあります。本の試し読みに比べると無料で学習できる範囲が広いことが多いのがwebサイトでの学習の特徴ですので、自分に合っているか無料の範囲で精査すると良いでしょう。

特にRailsは「Ruby on Railsチュートリアル」という信頼性の高い学習サイトが用意されています。テキストだけでなく動画での学習方法も用意されているため、ぜひ参考にしてみてください。

Ruby on Railsチュートリアルとガイドの進め方を解説!初心者向けに料金や学習時間を紹介
関連記事Ruby on Railsチュートリアルとガイドの進め方を解説!初心者向けに料金や学習時間を紹介

スクールで学ぶ

本やwebサイトで学ぶ上での難点は、1人で学ぶため挫折しやすいことです。せっかく購入したのに途中で開発をやめてしまってはもったいないですよね。きちんと学習を完遂したいならば、スクールで学ぶのがオススメです。

スクールにはあなたと同じくRailsを学習している受講生や、分からない時に手解きしてくれるメンター(先生のような存在)がいます。自分1人で学習するよりもモチベーションが保ちやすく、かつその都度相談しながら進められるため効率的に学習できます。

スクールによってはあなただけのオリジナルなwebサイト・アプリを作れる場所もあるため、卒業時には自分だけのwebサイトを完成させられます。最近はオンラインで完結するスクールも豊富なため、あなたが無理なく学びやすいスクールを探すと良いでしょう。

Ruby・Ruby on Railsを習得できるおすすめのプログラミングスクール7選
関連記事Ruby・Ruby on Railsを習得できるおすすめのプログラミングスクール7選

Ruby on Railsを実践的に学びオリジナルサイトを作りたいならGeekSalonへ!

Ruby on Railsの特徴や基礎知識は理解できましたか?この記事を通してあなたがRailsを使ってweb開発をしてみたいと思ってくださったなら幸いです。

Railsで実践的にサイトを作ってみたいなら、大学生限定のプログラミングスクールGeekSalonがおすすめです。

GeekSalonのホームページ画像

GeekSalonは3ヶ月であなただけのwebサイトの完成を目指します。プログラミングが未経験の方や文系の方もご安心ください。受講生のうち80%が未経験者で、50%が文系です。

geeksalonの受講割合を表す画像

完成したwebサイトは就活などでも活躍するため、ぜひお気軽に無料説明会にご参加ください。毎日無料で開催中です。

Ruby on Railsを学ぶならGeekSalon!

GeekSalon
  • 受講生数1.2万人突破!満足度は95.5%
  • 継続率約80%!同世代の仲間と学ぶから挫折しない!
  • 大学生向けの安価な料金!
GeekSalonについて詳しく知る

関連記事

【初心者向け】Ruby on RailsとRubyの違いは?Web開発の手順を解説!
関連記事【初心者向け】Ruby on RailsとRubyの違いは?Web開発の手順を解説!
Rubyとはどんなプログラミング言語?特徴やできること・他言語の違いを解説
関連記事Rubyとはどんなプログラミング言語?特徴やできること・他言語の違いを解説
Web開発とは?初心者向けに必要なスキルと習得方法を徹底解説!
関連記事Web開発とは?初心者向けに必要なスキルと習得方法を徹底解説!
HTMLの練習方法まとめ。初心者でもすぐできる実践例と上達のコツを解説
関連記事HTMLの練習方法まとめ。初心者でもすぐできる実践例と上達のコツを解説
CSSとはどんな言語?初心者にも分かりやすく書き方・使い方を解説!
関連記事CSSとはどんな言語?初心者にも分かりやすく書き方・使い方を解説!
Contact us.

無料説明会実施中!
お気軽にご参加ください

GeekSalonの詳細やプログラミング学習、卒業生の進路などを1対1でお話しします。その他のご質問やご相談も気軽にお聞きください。
コンタクト用イラスト

Ruby on Railsを学ぶならGeekSalon!

GeekSalonについて詳しく知る