連載
» 2014年02月28日 18時00分 UPDATE

開発現場でちゃんと使えるRails 4入門(1):簡単インストールから始める初心者のためのRuby on Railsチュートリアル (1/3)

エンタープライズ領域での採用も増えてきたRailsを使ってWebアプリケーションを作るための入門連載。初回はRailsの概要とMVCモデルとの関係、Rails 4の新機能・変更点、開発環境、インストール、scaffoldでアプリケーションを作る手順などを紹介します。

[著:林慶、監修:山根剛司,株式会社アジャイルウェア]

※編集部注

本連載はRuby on Rails 4の入門連載です。Rubyについて学びたい方は連載「若手エンジニア/初心者のためのRuby 2.1入門」をご覧ください。


エンタープライズ領域での採用も増えてきたRuby on Railsとは

 インターネット上でさまざまなWebサービスが提供されるようになって久しいですが、「Ruby on Rails」(以下、Rails)は多くのWebサービスで開発に使われています。

rails4_01.jpg Ruby on Rails

今回の主な内容


 Railsは、その名の通りプログラミング言語「Ruby」向けのWebアプリケーションフレームワークです。オープンソースで開発が続けられています。

 よく見られるWebサービスは、データベースにデータを保存し、ブラウザーを使ってその入出力を行います。そのようなアプリケーションを作る場合、開発者はRailsを使うことで高い生産性を発揮することが可能です。

 また、Railsはフルスタックなフレームワークなので、さまざまなタイプのアプリケーションを作ることができます。例えば、Androidアプリケーションに向けてJSONやXMLを出力するサーバーサイドに限ったアプリケーションを作ることもできます(参考「Androidアプリちょい足し開発レシピ(2):TwilioとRailsで作る、電話でテキスト読み上げアプリ」)。

 近ごろはエンタープライズ領域での採用も多くなり、業務システムのクラウド化をRailsで行うことも珍しくなくなりました。また既存システムだけではなく新規プロジェクトのシステムにおいても、さまざまな端末で利用できるWebアプリケーションであることが求められやすく、今後もRailsのニーズは高まっていくことが予想されます。

関連記事

Rails Hub情報局: Rails開発はスタートアップよりも受託の規模が大?

Rails Hub情報局: いま読みたいRuby on Rails3アプリ 10選

Rails Hub情報局: Twitterは意外なほどRuby on Railsでできている!?

PaaSの選択肢、拡大へ:オラクルがEngine Yardに出資。Oracle CloudでRuby、PHP、Node.jsのPaaS実現へ

アイデアを形に、そしてビジネスに:もう環境構築で挫折しない? ニフティがPaaSの提供開始

chroot方式によるマルチテナントを実現:IIJ、日本のRuby PaaS「MOGOK」を秋に立ち上げへ

実行環境と学習教材を提供する月額サービス:日立ソフト、Ruby on Railsの社内学習環境を提供開始

「DB2 Star Festival 2008」開催:「DB2 on Rails」も紹介、IBMが考えるDB2の方向性は

Ruby on Railsの特長とMVCモデル

 Railsのアプリケーションは「MVC」と呼ばれるデザインパターンで構成されます。MVCはモデル(Model)、ビュー(View)、コントローラー(Controller)というコンポーネントの頭文字で、アプリケーションのビジネスロジックを主にこれらのコンポーネントに書いていきます。

r13zu.png Railsで使われているMVCのデザインパターン(記事「MVCとRailsの基本構成を学ぼう」より引用)

データベースにアクセスする「モデル」

 モデルはアプリケーションで扱うドメインモデル層の設計をつかさどります。モデルはRailsでは「ActiveRecord」と呼ばれるデータベースのオブジェクトリレーショナル(O/R)マッパーが担っています。

 ActiveRecordは、マーチン・ファウラー氏の『エンタープライズ アプリケーションアーキテクチャパターン』(PoEAA、翔泳社)で解説された「アクティブレコードパターン」に由来します。

 またRailsは、「Arel」というSQL問い合わせの関係代数的な側面を抽象化したライブラリを含んでいて、SQLを利用するよりも直感的なデータベース操作を行えます。

 データベースへのアクセスは基本的にActiveRecordを介して行いますので、プログラム上RDBMSの違いを意識する必要がないのも大きなメリットです。

 なお、データベースは標準ではSQLite3、MySQL、PostgreSQLに対応しています。Oracleなどその他のデータベースも別途アダプターを導入することで簡単に利用できます。

HTMLなどのレンダリングをつかさどる「ビュー」

 ビューはHTMLなどのレンダリングをつかさどります。マークアップ言語などのテキスト内にRubyのコードを埋め込むことができる「ERB」(Embedded RuBy)テンプレートエンジンを標準で使います。

 「Haml」「Slim」などのより書きやすく直感的で高速なテンプレートエンジンエンジンを使うこともできます。

rails4_02.jpg Haml
rails4_03.jpg Slim

アプリケーションの動作を決める「コントローラー」

 コントローラーはビューによって生成されたリンクやフォームなどをユーザーが操作した結果、それに関するデータを呼び出したり更新したりするための動作(アクション)を記述します。GET、POST、PATCH(PUT)、DELETEの4種類のHTTPメソッドとURLの組み合わせで指定されたアクションが実行されます。

MVC以外にも、さまざまな構成要素

 モデル、ビュー、コントローラー以外にも、言語・時間など諸設定のためのコンポーネントや、スタイルシート・JavaScriptを管理するコンポーネントなどRailsには大小さまざまな構成要素が存在します。

 ですが、基本的にはMVCからアプリケーションの構築を考えていくので、必要に応じてそれらのコンポーネントに注目していくと良いでしょう。

Rails 4の新機能・変更点

 Rails 4では、Rails 3までの機能が整理されるとともに、新機能が追加されました。特徴的なものを幾つか紹介します。

StrongParameter

 コントローラーにおいてパラメーターに制限を付ける、セキュリティ強化のための機能です。

Turbolinks

 スタイルシートやJavaScriptなどのロードを省き、コンテンツのみの書き換えを行う高速化のための仕組みです。

Russian Doll Caching

 キャッシュをより簡単に使えるようにする機能です。

Ruby 1.9.3以上が必須に

 新機能というわけではないですが、Rails 4.0からRubyのバージョンとして1.9.3以上が必須になりました。

 Ruby Enterprise Edition(REE)などを含むRuby 1.8.7以前のバージョンを利用している方は、Rubyのバージョンアップを検討しなければなりません。

その他

 他にも、一時的なデータをモデルのように扱えるActiveModeが簡単に扱えるようになったり、リファクタリングの仕組みが用意されるなど、より開発が楽になるようにバージョンアップされました。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。