まずは無料キャリア相談へ!
事例あり✅30代未経験からIT転職

高校生でもわかる!Ruby on Rails基礎編

更新: 2021.09.01

あなたはWebアプケーション作成をしたいけど、どうしたらいいかわからない。何から勉強すればいいのかわからない。フレームワークとは一体なんだろうか?と悩んではいませんか?私もアプリ作成しようと思っても何から勉強すれば良いのかわからずに困っていました。しかし、この記事を読むことで、あなたはWebアプリケーション作成において今や必須の、フレームワークについて理解でき、フレームワークの1つであるRuby on Railsを使ったアプリ作成の手順を知ることができます。

Webアプリケーションフレームワーク

RailsはWebアプリケーションフレームワークの1つです。

WebアプリケーションはWebアプリケーションフレームワークなしでは作成できません。

まずはWebアプリケーションフレームワーク(以下、フレームワークと省略)とは一体何者かを知るところから始めましょう。

フレームワークとは

framework、日本語では「骨組み、枠組み、構成」などと訳されます。

例えば、家を建てる時はある決まった骨組みを作って、それを土台として家に欲しいもの(玄関や壁など)を加えていきます。

この時、ある決まった方法で、場所に玄関や壁を作っていきます。

アプリ作成の手順はこれに似ています。あらかじめ必須な機能はフレームワークに集められているので、開発者は欲しい機能のみを実装すれば良いのでコードを書く量が減ります。

また、フレームワークが定めた手順に従ってコードを書けばあっという間にアプリが出来上がります。レールに従えばアプリが作ることができるのです。

つまり、フレームワークを使えば、アプリ開発を効率的に、なおかつ簡単に行うことができます。

利用するメリット

・開発生産性の向上

アプリケーションの基盤となるコードがフレームワークに備わっているので、開発者が書くコード数がかなり減り、結果として生産性は急上昇します。

また、複数人で開発する際は開発者によってコードの書き方にバラつきが出てしまいます。

しかし、フレームワークを導入すればフレームワークが定めている規則の下でコードを書かなければならないので、全員が一律の規則の下にコーディングするのでコードの一貫性を保守できます。

そのため、アプリの可読性が上がります。また、コードにある問題を特定しやすくなるのでメンテナンスがしやすくなります

・大きな信頼

フレームワークなしで作ったアプリは、バグが出ることが多いです。

一方で、フレームワークはたくさんの開発者に使われ、内部のコードも見られています。

そのため、独自で作った、一部の人間にしか見られていないアプリケーションと比較するとバグが少なく、高い信頼性が確保されます

Railsとは

 

rails_image

出典:RAILS

Railsとは、プログラミング言語の1つ「Ruby」によって作られたフレームワークで、Rubyを使って開発されます。

これからRailsの特徴とRailsを使って作られた有名なサイトを見てみましょう。

Railsの特徴

・MVCパターン

まずRailsの特徴として、MVCパターンが挙げられます。

これは、Model(データベースとのやりとりなど)とView(実際にブラウザに表示される画面)、これらを媒介するControllerの3つに明確に分けることを言います。

Model、view、controllerのそれぞれの頭文字をとってMVCと呼ばれています。

MVCにすることで、2つのメリットがあります。

1つ目は、それぞれの専門家が分業してアプリ制作に取り組むことができる、という点です。

データベースのやりとりなどのロジックを組むのはエンジニア、実際に見た目に反映するビューを担当するのはデザイナーと分けることができるのでお互い得意な仕事に集中できます。

このようにすることで効率的に安全なロジックを持った綺麗なアプリやサイトができます。

2つ目は、テストの効率が上がることです。

アプリは機能を実装した後に意図した通りに動作するかを確認するためのテストをします。

テストするのはロジックですから、ロジックとデザインと分離している状態ならロジックとデザインが分離していない状態よりも相対的にテストが容易です。

これらがMVCパターンの利点ですが、MVCパターンは他のフレームワークにも多く採用されているのでRailsを勉強すれば他のフレームワークの開発にも柔軟に対応できるでしょう。

 

・設計理念

Railsでは以下の設計理念が貫徹されており、開発者は保守性に優れたアプリをお手軽に作ることができます。

CoC(Convention over Configuration)

和訳すると「設定より規約」です。

これは他のフレームワークでは自分で設定しなければならなかったものが、Railsではすでに設定してあるので、設定された規約に従ってコーディングすれば良い、というものです。

DRY(Don’t Repeat Yourself)

和訳すると「同じことを繰り返さない」です。これはCoCに支えられている理念ですが、Railsのルールに従うと、DRYの通り繰り返しを避け無駄なく開発ができます。

 

・フルスタックなフレームワーク

フルスタックとは、全部入りという意味です。Railsにはサーバ、コード生成ツール、テストツール、などなど開発に必要なツールが「全部入り」です。

そのためRailsを導入するだけで開発環境が整うので、すぐに開発に入ることができます。

 

Railsによって作成された有名サイト

前述の理由からRailsは大きな人気を博しています。実際にRailsによって作られた有名サイトを見てみましょう。

cookpad_web

出典:cookpad

日本最大の料理レシピサイト
ユーザー数6000万人、投稿レシピの数は240万品を超えており、このサイトを見ればほとんどの料理の作り方が分かります。
20~30代の主婦を中心に多くの人々に利用されています。

 

rakuten_web

出典:楽天市場

日本のネットショッピングサイト

ネット環境さえあればどこでも簡単に商品を購入できます。楽天の会員数は1億人を超えています。

 

Gunosy_web

出典:Gunosy

「エンタメ」「スポーツ」「社会」「まとめ」「コラム」「グルメ」など、

幅広い分野の旬のニュースが無料で読める、ジャンルを問わずに楽しめるサイトです。

「今日のニュースを3分でまとめ読み」をキャッチコピーに、素早く様々なニューズを読めます。

Railsの超基本

ここからはRubyで書かれたコードが出てきます。Rubyを知っておられなくても、ある程度は理解できますが、Rubyを理解していることを前提に解説していきます。

HTTP通信

まずはHTTP通信を理解しましょう。HTTP通信とはインターネット上でサイトを見る側(クライアント)とサイトを公開する側(Webサーバー)が通信する方法のことを言います。

request_and_response

詳しく説明すると、ユーザーがPCやスマートフォンを使ってウェブサイトにアクセスした時、PCからはリクエストというものが送信されます。

それに対して、リクエストを受け取ったサーバーはリクエストに対して適切なレスポンスを返します。これが基本的なウェブサイトの仕組みになっています。

データベース

次にデータベースについて学びましょう。データベースとはデータを格納する保管場所のことです。

保管場所はその管理人が必要です。そこで、管理人に当たるのがモデルです。モデルによってデータベースから情報を引き抜いたり、新しい情報を保存したりします。

ルーティング、コントローラ、ビュー

サーバがリクエストを受け取ってからレスポンスを出す過程について見ていきましょう。Railsではリクエストを受けてからルーティング→コントローラ→ビューの流れを経てレスポンスを返します。これからそれぞれについて詳しく解説していきます。

routing_controller_view

今回は「http://localhost:3000/greetings」というパスでリクエストを送るとブラウザでhello world!と表示されるアプリを作る過程でルーティング、コントローラ、ビューの説明をします。

ルーティング

ルーティングは送られてきたリクエストから次にどのコントローラのどのアクションを動かすのかを決定します。

ここでいうリクエスト、とは「http://localhost:3000/greetings」のうちのgreetingsのことです。

「http://localhost:3000/greetings」のうちhttp://localhost:3000/はホスト名、greetingsはパスと言います。

ホスト名とは実際のサーバの名前、ここで重要なのがパスであるgreetingsです。

パスであるgreetingsが呼ばれた時、これに対応するコントローラのアクションが呼ばれます。

そこでgreetingsのリクエストが送られてきた時、greetingsコントローラのindexアクションが呼ばれるとします。この時、ルーティングには以下のように記述します。

まだコントローラ、アクションは詳しく解説していないのでまだ気にしなくて大丈夫です。
 routing_code
これでgreetingsというリクエストが送られてきたときにgreetingsコントローラのindexアクションが呼ばれるようになりました。

コントローラ

コントローラはルーティングとビューをつなぐ役割を持っています。リクエストが送られてきた際にルーティングが読まれると、それに対応するコントローラが動きます。

コントローラでの処理が終わると、そのコントローラから指定したビューが読みこまれます。

このようにコントローラはルーティングからビューへと処理を受け渡す役割を持っています。

コントローラの中では次のように書きます。

controller_code

コントローラはクラス名、アクションはインスタンスメソッドとして書きます。
このように書くとコントローラが読まれた後にgreetingsコントローラのindexアクションに対応したビューファイルが読まれます。
また、今の場合はアクション内で何の処理もしていませんが、ビューで使いたい値がある場合、コントローラでその値を定義してそれをビューで使用することが可能です。

ビュー

最終的に呼ばれたビューファイルの情報がレスポンスとしてクライアントに返ります。ビューファイルは見た目に直接反映する部分で、基本的にHTMLで書かれます。

コントローラから呼ばれたビューで

Hello_world!

と書けば、ブラウザではHello world!と表示します。以上のルーティング、コントローラ、ビューの流れでサーバからレスポンスを返します。

モデル

モデルはデータベースとデータのやり取り(データの保存、取り出しなど)をしてくれるものです。

コントローラでモデルを呼び出し、データベースから必要な値をとってくれば、それをビューで使うことができます。

MVCパターンを先ほど学びましたが、コントローラでモデルを呼び出し、必要に応じてその値をビューで使います。

このようにデータベースのアクセスとビューとを明確に分けています。

how_to_use_model

 

この記事のハッシュタグ

まとめ

ここまでざっくりとRailsについて紹介しましたが、ここまで読まれたあなたはRailsについての基本的な知識が身についています。

Webアプリを作るために、よりRailsについて勉強していきましょう。

以下にRailsエンジニアである私のオススメのRails参考書を載せます。参考にして勉強し、Railsエンジニアになりましょう!

最後に、私が愛読している参考書をご紹介します。

この本はアプリ開発を体系立てて学ぶことができ、Railsの機能が詳しく解説されているのですが、初心者でもわかりやすくまとまっていて、非常に学びがいのある参考書です。

Ruby on Rails 4 アプリケーションプログラミング

 

↑目次へ戻る

未経験からの転職の悩みを解決!無料カウンセリング開催中【転職成功人数4400名以上!※1

こんな不安や疑問はありませんか?
・未経験から転職して、本当に年収が上がるのか
・ITエンジニア転職後の働き方や稼ぎ方が想像できない
・スキルゼロからITエンジニアとしてフリーランスになれるのか

カウンセリングでは、ITエンジニア転職やプログラミング学習を知り尽くしたプロのカウンセラーが、あなたの悩み解決をサポートします。満足度93%※1、累計利用者数は42,000人以上!※2

無料で相談できますので、気軽にご参加ください。【テックキャンプは給付金活用で受講料最大70%オフ※4
※1.2018年10月24日〜11月16日(N=106)  2.2020年12月時点 3.テックキャンプ エンジニア転職は経済産業省の第四次産業革命スキル習得講座の認定も受けており、条件を満たすことで支払った受講料の最大70%(最大56万円)が給付金として支給されます

無料キャリア相談はこちら

この記事を書いた人

あなたの理想のキャリアに合わせた、テックキャンプの2つのサービス

Advertisement