テクノロジー
Ruby on Railsでできることとは?ライブラリの例や特徴を解説

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

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

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

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

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

を解説します。

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

Ruby on Railsとは何か

出典: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

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の特徴

出典: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

出典:youtube

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

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

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

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

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

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

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

@user = User.find(1)

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

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を使うことでも画像のアップロードを行うことができます。

 

 

TECH::EXPERTでプログラミング未経験から
Webエンジニア転職・フリーランスの夢をかなえませんか
テックエキスパート

TECH::EXPERT』はプログラミングが全くの未経験の方がWebエンジニアに転職したりフリーランスとして活躍するまでをサポートするスクールです。

  • 手に職をつけて10年後も活躍できる人材になりたい
  • Webエンジニアとして転職したい
  • フリーランスとして場所に縛られず自由に働きたい

まずは無料キャリア相談(カウンセリング)に参加してみてください。月1000名以上のお申し込みをいただいているため、ご希望の日が埋まることがあります。予定があえば今すぐのご予約をお願いします!

無料カウンセリングの日程をみる

T.Sato T.Sato
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

  • カテゴリー