本連載では、Railsアプリケーションの開発プラットフォームはOS XまたはLinuxを推奨します。これらのプラットフォームは優良なライブラリやツールが豊富で、使用している開発者も多いためトラブルに対する情報が手に入りやすく、開発を楽に進められます。
筆者はRailsを選ぶメリットは開発を楽に進められるところにあると考えています。どのようなプロジェクトでも困難な個所はありますが、それらがビジネスロジックと関係のない個所で発生するのは、とても辛いはずです。より開発が楽なプラットフォームやツールを選んでいくことがRails習得、ひいてはプロジェクト成功への近道となるでしょう。
Railsアプリケーションの開発において必須ともいうべき便利なツールを紹介します。
Gitはバージョン管理システムです。バージョン管理を分散して行うため、プロジェクトメンバーが同時に同じファイルを編集できます。また、「gem」(Rubyで書かれたプログラムをパッケージ化したもの)などのソースコードが公開されている「GitHub」や、RailsアプリケーションのPaaSを提供している「Heroku」などはGitを使って操作するようになっており、Railsアプリケーション開発では重要なツールの1つです。
プロジェクトごとにRubyやライブラリのバージョンを管理したいという欲求はrbenvやRVMを使っていない限り誰もが抱くものです。これらはRubyのバージョンを管理するためのツールであり、rbenvは軽量で、RVMは機能が豊富という特徴を持っています。初めての方であればrbenvが適しているでしょう。
使い慣れたエディターがあれば、それが良いでしょう。Rubyのコーディングを支援してくれるプラグインなどがあれば楽に開発ができますので探してみましょう。
Rubyのシンタックス・ハイライトや入力補完を行い、かつ導入が簡単なものでは「Sublime Text」が便利です。また、「Vim」「Emacs」も根強い人気があるようです。
それではRailsアプリケーションを作りながら学習を始めるとしましょう。
本連載では、まず組織用の図書管理システムを作成しながら学習を進めます。このシステムでは組織で購入した図書の検索ができ、概要や保管場所、レビューなどを共有できます。
これらの機能は一般的なアプリケーションで使うものと変わりありません。ここでの内容をどんどん応用してみてください。
まずはRubyの準備ですが、「Homebrew」「apt-get」などのパッケージ管理システムを使うか、rbenvやRVMからインストールできます。
後者をお勧めしますが、より詳しく知りたい場合は、記事「Rubyプログラミングを始めるための基礎知識とインストール」の「パッケージマネージャー『Homebrew』のインストール(OS Xのみ)」や「RVMを使ってRuby 2.1.1をインストールする」を参考にしてください。
Rubyのインストールが済むと、Rubyの標準ライブラリ「RubyGems」(Ruby用パッケージ管理システム)を使えます。これでRailsのインストールをしましょう。次のようにRubyGemsの「gem」コマンドでインストールできます。
gem install rails
※コマンド自体は1つで簡単ですが、インストールには時間がかかるので、注意してください。
Railsをインストールしたら、次はいよいよRailsアプリケーションの作成です。Railsアプリケーションの作成は次のコマンドでできます。
rails new book_library
これにより図書管理システム「book library」のひな型が作られました。cdコマンドで「book_libraryディレクトリ」に移動しましょう。
cd book_library
Railsを構成するコンポーネントの中には、単体のgemとして提供されているものもあります。それらはアプリケーションのルートディレクトリ直下にある「Gemfile」で指定されており、標準で含まれないgemもここに記述しておくと、以下のコマンドによりインストールできます。
bundle install --path vendor/bundle
2014年2月28日の記事公開時、上記bundleコマンドで記述の間違いがありました。下記のように訂正させていただきます。このたびは内容に不備があり申し訳ありませんでした。
bundle install
bundle install --path vendor/bundle
「bundle」コマンドは「bundler」と呼ばれるアプリケーションごとのパッケージ管理システムです。前述したRubyGemsと異なり、アプリケーション(プロジェクト)ごとのgemを管理します。
なぜ何重にもわたってパッケージを管理するのかというと、共同開発などにおいて複数の端末にパッケージをインストールする上で、いずれの端末でもきちんとバージョンを統一する必要があるからです。
bundlerはこれを簡単にするもので、前述のGemfileにアプリケーションで使用するパッケージのバージョンを記述します。Gemfileは以下のように使用するバージョンを桁ごとに指定できます。
gem 'rails', "~>3.2" # 3.2以降4.0より前 gem 'rails', "~>4.0.1" # 4.0.1以降4.1.0より前
さて、「アプリケーションをどのように作っていけば良いのか」という問いに対してRailsは「scaffold」という仕組みを用意しています。scaffoldはあるデータに対する一覧表示、詳細表示、新規作成、編集、削除といった機能をコマンド1つで生成します。
ここでは、書籍データ(book)のscaffoldを生成しましょう。
bundle exec rails generate scaffold book title:string author:string outline:text
ログを見ると、上のコマンドだけで幾つものソースコードが生成されていることが分かります。データベースのマイグレーションファイル(設計図のようなもの)も生成されており、それを基に以下のコマンドでデータベースをマイグレーションできます。
bundle exec rake db:migrate
たったこれだけで、書籍データの管理機能が完成しました。
次のコマンドでローカルでアプリケーションサーバーを立ち上げ、ブラウザーで「http://localhost:3000/books」にアクセスしてみましょう。
bundle exec rails server
すると、書籍データの一覧を表示しますが、まだデータを登録していないので何も表示されていません。ページ中にある「New Book」リンクより、データ登録ページ(/books/new)に移行し、フォームに入力してデータを登録しましょう。
登録が済むと、そのデータの詳細表示ページ(/books/:id)にリダイレクトされます。ページ下部にある「Back」リンクを押すと一覧ページに戻り、追加されたデータが一覧表示されていることが確認できます。
Copyright © ITmedia, Inc. All Rights Reserved.