あなたのキャリアチェンジ成功を保証します

Ruby on Railsでできることとは?ライブラリの例や特徴を解説

作成: 2018.12.13 更新: 2019.01.23

>> 世帯年収300万以下限定!
転職成功まで受講料発生なし。詳細はこちら

Ruby on Rails(以下Rails)は、プログラミング初心者におすすめのWebアプリケーションフレームワークです。

開発スピードの速さやライブラリの豊富さから、多くのWEB系企業やベンチャー企業のサービスでも取り入れられています。

「Railsでできることを具体的に知りたい」
「初心者でもできるRailsの活用例は?」
「Railsはどんなサイトで使われているの?」

などの疑問をお持ちの方に向けて、この記事では、

「Railsでできること」
「簡単に機能を実装できるRailsのライブラリ」
「Railsで作られたWEBサービス」

を解説します。

そもそも「Ruby on Rails」とは何か、「Ruby」とはどう違うのか、というところから初心者にもわかるように説明していきます。

この記事の目次

Ruby on Railsとは何か

Ruby on Railsとは、プログラミング言語「Ruby」で構成されたオープンソースのWebアプリケーションフレームワークです。

■Webアプリケーションフレームワークとは
Webアプリケーションフレームワークとは、WEBアプリケーションの開発を行う際の、汎用的な機能や、基本的な構造を提供する枠組みのこと。WEBアプリケーションの共通の処理や何度も書かなければいけない処理などを提供してくれるものです。

 

Railsを用いてWEBアプリケーションを開発する場合、基本的な雛形はすべてRails側で用意されていいます。Webアプリケーションフレームワークで定められた制約に従って、必要な機能や処理を簡単なコードで記述するだけで、スピーディーにアプリケーションの開発を行うことができます。

Webアプリケーションフレームワークを使用しない場合、全ての処理や機能をイチから全て記述して実装しなければならなくなります。

Rubyでは他にも、「Sinatra」や「HANAMI」などのWebアプリケーションフレームワークがありますが、現状は「Ruby on Rails」を利用した開発が一般的です。

rails newコマンドでアプリケーションの雛形が作られる

RailsでWebアプリケーションを作成する場合、「rails new」というコマンドを入力します。それだけで、アプリケーションの基本的なディレクトリやファイル一式が生成されます。

さらに開発用のサーバーなども、この時点で使えるようになります。

バリデーションの例

例えば、アプリケーションの会員ページに自己紹介を記入してもらうため、「会員情報変更ページ」に「自己紹介」のフォームを作ったとしましょう。

データベースに「self_introduction」というカラムを追加し、自己紹介は読みやすさを重視するために「2000字以内」と制限をかけます。その場合、開発者は、自己紹介の欄に「2000字以内のテキスト」が入力されることを期待します。

しかし、ユーザーが「2000字以内」という注意書きを見落とし、それ以上のテキストを入力することもあるでしょう。その場合、そのまま登録完了するのではなく、「文字が規定より多いこと」を伝え、入力し直してもらう必要があります。

Railsでは、対象のモデルに「バリデーション」を一行加えるだけで、検証の機能を実装することができます。

例えば上記の例であれば、Userモデルに

validates :self_introduction, length: { maximum: 2000 }

と記述するだけで、2000文字より大きいテキストが入力されていた場合は、情報を更新せず、入力フォームにリダイレクトをかけることができます。

ライブラリが充実

RailsがWEBアプリケーションの開発で多く用いられる理由のひとつとして「ライブラリが充実している」ことが挙げられます。

ライブラリとは、汎用性の高いプログラムを再利用できる形でまとめたもののことです。

■Gem
Railsでは、「Gem」と呼ばれる形式のパッケージで提供されます。多くのライブラリがGem形式で公開されています。パッケージ管理ツール(bundler)を使って自らが開発しているアプリケーションにインストールすることができます。

ライブラリを用いた開発の例

Railsでログイン機能付きのWEBアプリケーションを作りたいとします。

ライブラリを使わない場合、セッションという仕組みを用いて「ログイン中のユーザー」の設定・判定を行う機能を実装します。またログインや新規登録のフォームも自作する必要があります。

ですが、ログイン機能のGem「Devise」をインストールすれば、その時点でログイン・新規登録機能がアプリケーションに実装されます。Devise用のViewをインストールすることで「新規登録画面」や「ログイン画面」もメールアドレスとパスワードを入力するフォームの雛形が作られるので、あとは自分の好みにフォーム内容を改変するだけで良いのです。

このようにライブラリを用いることで、自分で全てのプログラムを記述する必要が無くなります。

バージョンアップデートで様々な機能が追加される

Railsは比較的早いスパンでバージョンアップデートが行われ、アップデートの度に様々な機能が新たに追加されます。

例えばRails5からは「ActionCable」と呼ばれるリアルタイム通信用の技術が追加され、双方向通信を可能にするWebSocketの機能をアプリケーションに簡単に追加することが可能になりました。

これにより、ウェブページの閲覧者が画面の操作を行わなくても新しい情報を表示することができるようになり、チャット機能などの実装が簡単に行えるようになりました。

このようにRailsはアップデートを重ね、日々進化しているのです。

Rubyとは何か

Rubyは、日本で作られたオブジェクト指向のプログラミング言語です。楽しくプログラミングできることを目指し設計されています。

大きな特徴としては、読みやすく書きやすい点。プログラミング言語特有の「記号」を多用せず、シンプルにコードの記述ができます。

■文字出力を行う例

▼PHPの場合
<?php echo “Hello”; ?>

▼Javaの場合
public static void main(String args[]) {
 System.out.print(“Hello “);
}

▼Rubyの場合
puts “Hello”

「Ruby」と「Ruby on Rails」はどう違うのか

プログラミング初心者の方は「Ruby」と「Ruby on Rails」を混同してしまう方もいるかもしれません。

「Ruby」と「Ruby on Rails」は明確に異なるものです。

RailsはRubyを用いて作られている「Webアプリケーションフレームワーク」を指します。Webアプリケーションフレームワークは、Webアプリケーションを作成するための枠組みでありプログラミング言語で作られています。

つまり、ほとんどのWEBアプリケーションに必須の機能は、それを枠組みとして事前に用意。これがWebアプリケーションフレームワークであり、それらを構成する言語がプログラミング言語なのです。RailsもRubyを用いて構成されています。

 

Rubyは日本産の言語。Ruby on Railsは海外産のWebアプリケーションフレームワーク

Rubyはフリーソフトであるため、自由に変更や改良を加える事ができるものとなっており、世界中で使用されています。

Rubyは日本人まつもとゆきひろ氏によって開発されました。そして、Rubyが誕生してから11年後の2004年に、デンマークのプログラマーであるデイヴィッド・ハイネマイヤー・ハンソン氏によってRailsが開発されました。これがRubyを世界中で使われるようになったきっかけです。

Rubyの人気 他言語との比較

Rubyとよく比較されるプログラミング言語は以下の通りです。
・PHP
・Perl
・Python

上記の言語は、どれもWEBアプリケーション開発の分野において用いられることがあります。

RubyはRailsの扱いやすさや日本語ドキュメントの多さ、書き方の柔軟性などから、開発スピードを重視するベンチャー企業やWEB系の企業おいて、多く採用されています。

また大学生や社会人を対象としたプログラミングスクールでは就職や転職、学習コストの低さやコードの書きやすさなどの理由から「Ruby」が人気です。

シンプルな記述、かつRailsの使いやすさから、初心者におすすめの言語であると言えます。

一方、PythonはWEBアプリケーションだけでなく、人工知能や機械学習、データ解析領域で活用されるプログラミング言語です。人工知能領域の発展に伴い、大きな注目を集めています。

 

PHPは歴史のある言語であり、WEB系企業をはじめ、採用している企業は多いです。laravelなどRailsに似た新しいWebアプリケーションフレームワークも登場しています。

Perlは2000年初頭のサーバサイドの開発でよく用いられていた言語ですが、近年扱っている企業は減りつつあるという現状です。

Ruby on Railsの特徴

Railsには他のフレームワークとは異なる特徴がいくつかあります。

MVCモデル

Railsによって作られるWEBアプリケーションはMVCという設計に沿って作られます。

MVCとは、Model View Controllerの頭文字をとったものであり、それぞれ以下のような役割を持ちます。

■MVCモデル

Model(モデル)
データベースに対してデータの登録・取得・更新・削除などを行います。

View(ビュー)
ブラウザに表示される画面の作成を行います。一般的にはHTMLファイルではなくhtml.erbファイルにRubyのコードを埋め込んでデータを表示します。

Controller(コントローラー)
ユーザーからの要求に対して、ModelからのデータをViewに渡すなどの処理を行います。

 

データを扱うModel、画面表示のView、入力に応じてこれらを操作するControllerと役割分担することで、アプリケーション開発を効率的に分業して行うことができます。M、V、C と役割を分担することにより、仕様変更に柔軟対応も可能になります。

DRY

DRYは(Dont’t Repeat Yourself)の頭文字をとったものであり「繰り返しを避ける」という意味です。

Railsを使ったWEBアプリケーションでは、同じことを繰り返す記述は避けるべきとされています。同じコードを何度も書くことは仕様変更などの際に対処できなくなる可能性があるからです。

DRYを意識することで効率よく、質の高いアプリケーションを作ることができるでしょう。

データベースを直感的に操作できる

一般的にデータベースを扱う場合、データベース言語「SQL」を書く必要があります。

しかしRailsアプリケーションでデータベースを扱う場合は、SQLを書く必要がなく、直感的にデータを取得するコードを書くことができます。

例えば、データベースのusersテーブルからユーザーIDが1のデータを取得する場合、

@user = User.find(1)

と記述するだけで、データを取得することができます。

TECH::EXPERT 東京・名古屋・大阪・福岡

プログラミング未経験からWebエンジニアとして転職成功まで導くスクール TECH::EXPERT は、挫折しない環境を提供いたします。すべて駅から通いやすい便利な場所。いつでも質問できるメンター(講師)、一緒に頑張る同期がいるから頑張れる。そんな教室を是非見にきてください!

Ruby on Railsでできること

Railsを使うことでどのようなことができるのか、実際に作ることができるものを紹介します。

ブログサイト

ブログを始める際は、ブログサービスやWordPressなどを使うことが一般的ですが、Railsを使って自分でブログサイトを作ることもできます。

機能やデザインなどを無料で自分好みに設定することが可能になります。

ショッピング(EC)サイト

Railsを使って、決済機能のついたショッピングサイトを作ることができます。

Rubyだけで決済機能を実装することは非常にハードルが高いですが、SolidusというRuby on Rails製のフレームワークや、pay.jpのAPIを使用することで、実装が可能です。

SNS

Railsを使い、ユーザー登録やログイン機能が実装され、データベースと連携したSNSを作成することができます。

Railsの学習に用いられることが多い「Progate」のRailsコースや「Railsチュートリアル」は、実際にSNSサービスを作りながらプログラミングを学習していくようになっています。

Railsを使うと、FacebookやTwitter認証のログイン機能など様々な機能を追加したり、レスポンシブデザインなど、デザイン変更も対応可能です。

 

スマホアプリ

iOSアプリの開発はSwift、Androidアプリの開発はJavaやKotlinが一般的です。

しかしRubyでも「RUBYMOTION」というソフトを使うことにより、AndroidアプリやiOSアプリを開発することが可能になります。

API

スマートフォンアプリをサーバーサイドと連携をするためのAPIもRailsを使って開発することができます。

スマートフォンアプリ自体は前述の通り、Swiftなどを使うのが一般的ですが、アプリからの情報の保存や、データベースからの情報取得などはAPI側で行うことが多いです。

スクレイピング

スクレイピングは、ウェブサイトのHTMLタグをもとに情報を取得し、その情報を加工して新たな情報を生成することです。Webスクレイピングとも呼ばれます。

例としては「ニュースサイトを巡回して見出しを抜き出して一覧にする」「商品のデータを集めて価格表を生成する」などが挙げられます。

Railsでは「Nokogiri」というGemを使うことで、プログラミング初心者でも短いコードで情報を取得することができます。

機械学習

RubyやRailsでは、コンピューターに学習させる機能である機械学習を行うことも可能です。

ですが機械学習はそのライブラリの多さからPythonを使うのが一般的であり、Rubyでの開発はベストな選択肢ではありません。

ライブラリ(Gem)を使ってできること:具体的な機能

次にRailsのライブラリを使うことでどのような機能が実装できるのか、簡単に解説します。

どれもアプリケーション内の「Gemファイル」に記述しインストール(Bundle install)だけで簡単に使えるようになります。

Devise

前述の通り、アカウント登録やログイン機能はDeviseを使って実装することができます。メールアドレスとパスワードのサインアップだけでなく、Facebook、Twitter、LINEなどのアカウントでの認証機能も付け加えることができます。

kaminari

Googleの検索結果の下部にあるような、ページネーションは「Kaminari」というGemを使って実装することができます。

表示する情報の量が多いアプリケーションなどは、ページの遷移をスムーズに行うことができるようになるでしょう。

Active Admin

Active Adminは管理画面を作ることができるGemです。デザインすでに施されているので、基本的な用途であれば、Active Adminを導入するだけで問題なく、さらにカスタマイズをすることもできます。

Paperclip

Paperclipは、画像ファイルなどのアップロード機能を実装するGemです。保存や削除などの設定も簡単に行うことができます。

またRails5から導入されたActive Storageを使うことでも画像のアップロードを行うことができます。

 

 

Ruby on Railsでできないこと

万能に思えるRailsですが、苦手な分野や領域があります。

上記で紹介した「スマホアプリ」と「機械学習」に関してはRailsが適しておらず、それぞれ、あくまで可能ではあるという認識です。ネイティブアプリ開発や機械学習にRubyを使用するのは一般的ではありません。

ライブラリの数も少なく、機械学習の演算スピードはPythonのほうが早いです。

Ruby on Railsで作られたWEBサービス

次に、どのようなサービスにRailsが用いられているのかを紹介します。

クックパッド

クックパッドは国内最大級のレシピサイトです。

Railsを活用した有名なWebサイトで、様々な料理のレシピを見ることができます。

ユーザーから登録されるレシピ情報やアカウント情報の管理などにRailsのあらゆる機能が活かされています。

Airbnb

Airbnbは、民泊情報をシェアするサイトとして世界的に普及している人気Webサービスです。

利用者は世界中およそ2億人以上と言われています。通常のホテルではなく一般人が所有する部屋を旅行者に安価に提供できるサービスです。

Airbnb創業物語では、創業時の社員数が3人だった頃に、その内のエンジニアがひとりでプロトタイプのサービスを開発した歴史が語られています。

Gunosy

Gunosyは、国内外の様々なニュースをユーザー届けるキュレーションサイトです。

ユーザーの希望に応えるように新しい機能を開発し続けるシーンではRailsのフレームワークを活用して素早く開発することが多いです。さらに人工知能によるアルゴリズムでユーザの興味に合わせた情報を提供しています。

Wantedly

ソーシャル・リクルーティングサービスWantedly(ウォンテッドリー)もRailsを使って作られています。

Wantedlyのプロトタイプは、創業者の仲暁子氏がひとりでプログラミングを学びながら作ったものであると著書で語られています。

GitHub

GitHubはソフトウェア開発プロジェクトのためのプラットフォームです。

ソースコードのバージョン管理を行うためのツールGitを中継(hub)して世界中にソースコードを公開しています。

8000件以上のプロジェクトがあり2700万人以上の開発者が利用しています。GitHubもRailsを使って構築されています。

プログラミング初心者がRuby on Railsを学ぶメリット

Railsを学ぶメリットを紹介します。

Railsは初心者でも扱いやすいため、プログラミングを学ぶには非常に適しています。

開発スピードが早い

Railsでは、コマンドを実行することで、ある程度自動でWebアプリケーションが自動で作成されます。

そこに機能を追加したり、レイアウトを調整することでかなり早いスピードでアプリケーションを作成することができます。

日本語の学習サービスやドキュメントが多い

Railsは日本語の学習サービスやドキュメントが多い点も特徴的です。

Progateは全くのプログラミング経験がない人が、WEBアプリケーションの仕組みを学ぶためにRailsのコースを多く用意しています。

またRailsチュートリアルなどの学習教材も豊富です。他の言語の場合、そもそも初心者に向いたサービスがなかったり、情報が古いこと、わかりづらいことが多々あります。

またQiitaやブログなども日本語のものが多く、エラーメッセージをそのまま検索すると、同じようにエラーになり、解決した人のブログなどがヒットすることも。

周囲に質問できる人がいないという方も学習がしやすい言語・Webアプリケーションフレームワークであると言えるでしょう。

プログラミング初心者がRuby on Railsを学ぶデメリット

プログラミング初心者がはじめにRailsを学ぶデメリットも存在します。

内部構造を把握しにくい

Railsはあらゆる機能をあらかじめ用意してくれているものです。Gemを使えば少ないコードで実装できます。

それゆえ、それぞれの機能がどのような構造で動いているのかを把握しづらいという点もあります。

機能の構造を把握できていないとエラーや挙動がうまく行かない場合に、対処することが難しくなります。またRailsは独特な書き方をすることもあるので、Rubyではない他の言語を学ぶ際に、戸惑うことになるかもしれません。

バージョンアップデートのスパンが早い

Railsはおよそ1年に1回12月にアップデートが行われます。それに伴い新しい機能が増えますが、同時にバージョンの変化に適応できない可能性も出てきます。

バージョンをアップデートすることで、思いもよらないエラーが出ることもあります。またQiitaやブログの記事もRailsのバージョンによって正しい内容ではないことがあります。

Ruby on Railsを学ぶおすすめ書籍

Ruby on Railsを学ぶ際におすすめの書籍を3冊紹介します。

たった1日で基本が身に付く! Ruby on Rails 超入門

プログラミングの知識が全くないという方におすすめです。

MVCモデルなどイラストを用いてシンプルに解説してくれるため、Railsが実際どのような動きをしているのかがわかりやすいでしょう。

改訂4版 基礎Ruby on Rails

架空の草野球チームのサイトを作りながら、実際に手を動かし学ぶことができます。

前半はRailsの基礎についてわかりやすく解説し、後半は応用的な機能まで広く知識を得ることができます。

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

簡単なアプリケーションの作成を通じてRailsにを学習するのはもちろん、実際に現場で開発することを想定したノウハウまで解説されています。

将来的にはRailsの開発現場に入りたいと考えている方におすすめです。

 

ゼロからのRuby on Rails学習はプログラミングスクールで

プログラミング知識ゼロからRailsを学習する場合、プログラミングスクールに通うことをおすすめします。

プログラミングは実際に学習を始めるまでに環境構築などでつまづく可能性が高いです。プログラミング言語の学習を始める前に挫折してしまうという人も珍しくありません。

またエラーが出た時に解決方法が分からずに、諦めてしまうという声も耳にします。

スクールでは分からない部分を講師(メンター)に質問し、アドバイスをもらうことができます。

またスクールでは過去の受講生がつまずいた箇所を分析し、初めてプログラミングをする人でもわかりやすいテキストを使って学習を進めます。

Railsを学ぶスクールでハンズオン形式のテキストであれば、カリキュラムを進めていくことでWEBアプリケーションを完成させることができます。

自らの手でアプリケーションを完成させることで、モチベーションも上がり、WEBアプリケーションがどういった仕組みで動いているのかを体得することができるでしょう。

さいごに

Ruby on Railsでできることについて解説しました。全くのゼロからであれば、RubyとRailsでプログラミングを学ぶことをおすすめします。

他の言語やWebアプリケーションフレームワークを学習する際も、一度Ruby/Railsを使えるようになっていれば、スムーズに学習を進めることができるでしょう。

会社に縛られず自由に働けるエンジニア・Webデザイナーへ

TECH::EXPERTは未経験からのエンジニア・Webデザイナー転職を実現するスクールです。

  • 残業が多い
  • プライベートを充実させながら自由に働きたい

そんな方には柔軟な働き方が可能なエンジニア・Webデザイナーがおすすめです。未経験からプロとして働けるスキルを身につけられ、徹底したサポートで案件獲得を支援します。

まずは無料キャリア相談(カウンセリング)から、お気軽にご相談ください。

無料キャリア相談の日程を見る

この記事を書いた人

Avatar
T.Sato