◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

DMM WEBCAMP転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアへ3ヶ月で転職する為のスクールです!
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
TECH::CAMP教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
DMM WEBCAMP ビジネス教養コース【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でプログラミングを学びたい方!
2月生募集中!当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のDMM WEBCAMP(旧WEBCAMP PRO)。
1月生は満員となっております。2月生募集に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

はじめに

学生の頃、ほとんどの人が、特定の教科が苦手だったと思います。

英語、数学、理科など、それがすごく得意な人がいる反面、まったくできない人もいます。

その違いは、いったい何でしょうか?

じつは、ほとんどの場合は、それは才能などではなく「興味があるかどうか」「その知識を利用する具体的な目的が見えているかどうか」の違いなのです。

例えば、「英語を勉強しておいた方が良い」という理由で英会話の勉強をする人と、「取引先が海外で英語が必要」という人では、ほとんどの場合、後者の方が早く、深く身につけることができるでしょう。

同様に、プログラムの学習でも、「何かを実現したい」「○○のアプリケーションを作りたい」という具体的な目的があれば、驚くほど早く身につけることができるのです。

ただし、プログラムは「なんでもできる」ように見えて、プログラム言語や環境によって、得手不得手があるものなのです。

そんな性質を知らずに、夢を抱いてプログラムの勉強を始めても、じつはやりたいことを実現するのに手間がかかるプログラム言語を勉強してしまっては、挫折してしまう可能性が高くなってしまうでしょう。

ここでは、いまからRuby on Railsを勉強しようとしている人に向けて、「Ruby on Railsでどんなアプリケーションを作ることができるのか」、そもそも「Railsアプリというのはどんなものなのか」を詳しく説明していきます。

未経験から上京し、エンジニアとしてチームラボグループに転職!【WebCampPro卒業生インタビュー】

RailsアプリケーションはWebアプリケーションである

Ruby on Railsは、Webアプリケーションを作るためのひな形やツールなどが揃えられた環境です。

つまり、Railsアプリケーションというのは、Ruby on Railsを使って作成されたWebアプリケーションだということになります。

Webアプリケーションというのは、Google chromeやFirefox、Microsoft Edgeなどのブラウザでアクセスすることで動かすアプリケーションやWebサイトのことです。

つまり、Railsは、動きのあるWebサイトを構築する、もしくはサーバ側でデータ管理をするアプリケーションを作るのが得意だと言えます。

現在、ビジネスや公共活動では、何らかのサービスをWeb上で展開するのが一般的です。Railsは、そのためのWebアプリケーションを効率よく作ることができますので、新しいサービスを考えている人にとっては、とても魅力のある環境でしょう。

Railsアプリケーションの例

Railsアプリケーションの具体例をいくつか紹介しましょう。

実際に見てみれば、イメージがつかみやすいと思います。

Airbnb

旅行が好きな人であれば必ず聞いたことがあると思います。

Airbnb

ここ数年で世界中に急激に広まったサービスであり、Railsアプリケーションの大きな可能性を具現化してくれた好例と言えるでしょう。

CookPad(クックパッド)

料理のレシピを共有するソーシャルサービスから始まった、日本では有名なサイトです。

CookPad

このサイトも、Railsアプリケーションで作られていることは、多くの人が知っているかもしれません。

Gunosy

有名なニュースサイトの1つGunosyも、Ruby on Railsで構成されています。

Gunosy

いまでは数多く存在しているニュースアプリの礎となったとも言えるサイトの1つがRailsアプリケーションというのも、一人の開発者として誇らしいことでしょう。これは、「最初にサービスを始める」ための開発速度についても、Ruby on Railsが優れているということの表れかもしれません。

その他、ソーシャルゲームのサーバ側のプログラム

以上は超有名と言えるサイトですが、他にも多くのWebサイトがRailsアプリケーションで構成されています。特に、モバイルゲームと絡めて、各種ソーシャルゲームのサーバ側のプログラムが、じつはRuby on Railsだという例は非常に多くなっています。

PC上で動くアプリケーションは作れないのか?

もちろん、1人で「CookPad」や「Airbnb」のような大規模なWebアプリケーションを作るのは難しいかもしれませんが、「やればできる」のは確実です。

そのため、Webサービスを立ち上げることを目標にしているのであれば、Ruby on Railsの学習は、最適な選択肢の1つと言えるでしょう。

しかし、逆に言うと、パソコンにインストールして使うようなアプリケーションは、Railsで作成するのは難しくなります。

ただ、Ruby on Railsの学習をすると言うことは、自動的にRubyの学習もしなければいけません。

Rubyであれば、パソコン上で動くアプリケーションを作ることができますので、Ruby on Railsを勉強することで、Webアプリケーションを中心にして、広い範囲のアプリケーションを作ることができるようになる可能性があるでしょう。

コツコツ独学×スクールで実践。未経験からエンジニアに転職!【WebCamp卒業生インタビュー】

Railsアプリケーションのしくみ

RailsアプリケーションがWebアプリケーションだと説明しましたが、Webアプリケーションがどういうものかが曖昧な状態では、まだ作りたいものができるのかどうかが分からないでしょう。

ここでは、RailsがWebアプリケーションをどうやって実現していくのかを説明していきます。

Webアプリケーションの基礎

Webアプリケーションは、基本的にパソコンなどのユーザーが扱う機器である「クライアント」とネットワークを通じてクライアントから来た要求(リクエスト)に応答(レスポンス)を返す企業などのコンピュータである「サーバ」のやり取りを行うためのアプリケーションです。

クライアントには、原則として特別なアプリケーションを搭載することなく、ブラウザを使ってサーバへアクセスします。

そのブラウザからのアクセスは主に「HTTP」から始まるURLで、それが、例えば「TOPページを表示して欲しい」という要求というわけです。

サーバは、このクライアントからのリクエストを適切に解釈して、「トップページ表すHTMLをブラウザの情報」というレスポンスを返すことで、ブラウザがそのHTMLを適切に表示させて、1つの要求が完結することになります。

Webアプリケーションというのは、このサーバ側の「リクエストに対して適したレスポンスを返す」ことを行うためのソフトウェアなのです。

MVCアーキテクチャ

前述の通り、Webアプリケーションには、リクエストに適したHTMLを生成する機能が必要になります。

また、ユーザーが入力した情報(多くの場合はフォームによる入力)を保持する機能としては、データベースを利用することが前提となっています。なぜなら、Webアプリケーションの多くが、会員や商品のデータなど、大量のデータを保持し、効率よく処理しなければいけないからです。

そして、当然ながら、このHTMLの生成とデータベースとのやり取りを結びつけるための処理も必要になるでしょう。

それらを実現するために、RailsではMVCアーキテクチャを採用しているのです。

このアーキテクチャに従うことで、Railsのプログラムは3つの役割に分けて管理でき、メンテナンス性や可読性を上げることもできます。

つまり、MVCアーキテクチャを理解することで、Railsアプリケーションの動きとプログラムの指針の大枠を理解できると言えるでしょう。

MVCは「Model」「View」「Controller」のことで、それぞれ、以下のような機能を担っています。

Model データベースを使った処理、データを使った処理などの内部処理
View 表示レイアウト、UIに関連する動的処理
Controller 各種処理を呼び出す。仲介するにあたって必要な、最低限の処理

図で示すと、以下のようなイメージです。

なお、モデルとコントローラについては、詳細な説明がありますので、それぞれ参考にしていただければ良いかもしれません。
【Rails入門説明書】modelについて解説
【Rails入門説明書】controllerについて解説

ルーティング

基本的には、Railsアプリケーションの動きはMVCで説明できます。

しかし、最初のきっかけであるブラウザからのリクエストによってどんな動きをするか、という部分であれば、という条件付きです。

そもそも、ブラウザからのリクエストは無数のパターンがあり、その中のどんなリクエストに反応すべきか、どういった処理を行うのかを分岐する処理がなければ、いけません。

前述の図を見ると、コントローラがその役を担っているように見えますが、じつはそうではありません。コントローラは振り分けられた後にモデルやViewを利用してどんなレスポンスを形作るのかを決めているだけです。

そのため、誰かがリクエストによって処理を振り分けなければいけないわけです。

その振り分けを行うのが、ルーティングです。

ルーティングの実態は、Railsのフレームワークに隠されていますが、どう振り分けるかをまとめたリストが「config/routes.rb」というファイルになっています。

ここには、ブラウザからのリクエスト(GET、POST、DELETEなど)と、アクセスしようとしているURLに対して、コントローラに定義されたどの処理(アクションと呼びます)を実行するかが定義されているのです。

そのため、Railsの動きを追うためには、ルーティングを知るところから始める必要があります。

なお、routes.rbを確認するのではなく、コマンドプロンプトで以下のコマンドを実行しても、ルーティングのリストを確認することができますので、そちらで確認した方が良いでしょう。

rails routes

あるRailsアプリケーションで、上記のコマンドを実行すると、以下のようなリストが表示されます。

   Prefix Verb   URI Pattern               Controller#Action
    login GET    /login(.:format)          sessions#new
          POST   /login(.:format)          sessions#create
   logout GET    /logout(.:format)         sessions#destroy
    users GET    /users(.:format)          users#index
          POST   /users(.:format)          users#create
 new_user GET    /users/new(.:format)      users#new
edit_user GET    /users/:id/edit(.:format) users#edit
     user GET    /users/:id(.:format)      users#show
          PATCH  /users/:id(.:format)      users#update
          PUT    /users/:id(.:format)      users#update
          DELETE /users/:id(.:format)      users#destroy

例えば、1行目の「login」というPrefix(別名)が付けられたルーティングは、以下のような意味になります。
『GETリクエストで「http://xxxxx.xxx/login」へアクセスした場合、sessionsコントローラのnewアクションを実行する』

“未経験”でもたった1ヶ月で営業からエンジニアとして転職!『WebCamp』受講者インタビュー

まとめ

今回は、Railsアプリケーションについて説明しました。

Railsアプリケーションは、Webアプリケーションです。

そして、Webアプリケーションは、パソコンにインストールするアプリケーションと違って、数多くの人が同時にアクセスすることができるサービスです。

つまり、Rails on Railsは、何らかのサービスを作ることを得意としている開発環境なのです。

もちろん、そのサービスは、仲間内のコミュニケーションだけで使うものでも構いません。しかし、いままではどこかの企業のサービスを使うしかなかった、ネット上のコミュニティスペースを、自分の手で作れるというのは、とても魅力的なことではないでしょうか?

Railsには、そんな普通のプログラムにはない、夢をかなえる力があるのです。

・RailsアプリケーションはWebアプリケーションである
・いくつもの有名なソーシャルサービスがRailsアプリケーションで運用されている。
・Webアプリケーションは、ブラウザからのリクエストに最適なレスポンスを返すもの
・Railsアプリケーションの基本構造はMVCである
・MVCのMは、データベースとやり取りするModel
・MVCのVは、表示するためのテンプレートや動きを定義するView
・MVCのCは、ModelやViewを適切に操作して正しいレスポンスを生成するController
・ブラウザからのリクエストに最適なControllerのアクションを呼び出すのがルーティング設定

DMM WEWBCAMPについて

DMM WEBCAMPは3ヶ月間で未経験から即戦力エンジニアを育成する転職保障付きのプログラミングスクールです。1ヶ月でプログラミング・Webデザインを学ぶ通い放題の「ビジネス教養コース」も展開しています。

DMM WEBCAMPを運営する株式会社インフラトップ では、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

2月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のDMM WEBCAMP(旧WEBCAMP PRO)。
1月受入枠は満員となっております。2月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWEBデザイン・プログラミングを学びたい方はこちら!


▼ついに開講!オンラインでWEBデザイン・プログラミングを学びたい方はこちら!

 

【インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!

ブラジルから帰国し技術をつけようとRubyエンジニアを目指してWebCampでRubyを学び、見事Webエンジニアとして転職を果たした田中さんにお話を伺いました。

Rubyの学習がしたい。基礎をしっかりと理解したい

転職のサポートがほしい

と考えている方はぜひお読み下さい。

【WebCamp卒業生インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!

おすすめの記事