#310 Getting Started with Rails
Ruby on Railsは優れたWebフレームワークですが、初めて見ると圧倒されるかもしれません。このシリーズでは中級レベルのトピックを扱うことが多いですが、新規のRailsプログラマーに対しては推奨できるまとまった一つの場所がありません。このエピソードでそれを解決したいと思います。
Railsをインストールする
Windowsを使用しているのであれば、Ruby and Railsをインストールするために一番いいのはRailsInstallerを使う方法です。これは一つにまとまったパッケージで、Rails環境を設定するのに必要なものをすべてインストールしてくれるので、このセクションの残りをスキップできます。
OS Xを使用しているのであれば、Railsをインストールする前にHomebrewをインストールするのがいいでしょう。それによって必要となるソフトウェアのいくつかをずっと簡単にインストールできるようになります。これをインストールするにはひとつのコマンドを実行するだけですが、それはインストールについてのページにあります。Homebrewがインストールできたら、それを使っていくつかの便利なパッケージをインストールします。具体的にはソースコード管理のためのgit
と、データベースのsqlite
です。その他のパッケージをセットアップするためにはまずこれらが必要で、次のコマンドを実行することでインストールできます。
$ brew install git sqlite
Linuxを使っているのであれば、ディストリビューションのパッケージマネージャーを使ってSqliteとGitをインストールできます。
次に最新バージョンのRubyをインストールします。OS XかLinuxを使用しているのであれば、RVMを使うのがもっともいいでしょう。これもRVMのホームページにある1行のターミナルコマンドでインストールできます。その後は、rvm
コマンドでRubyの好きなバージョンをインストールできるようになります。最新バージョンのRuby (現在は1.9.3)をインストールするには次のコマンドを実行します。
$ rvm install 1.9.3
これによってRuby 1.9.3がダウンロードおよびコンパイルされ、その後は以下のコマンドで使用できるようになります。
$ rvm use 1.9.3 --default
--default
オプションによってこのバージョンをシステムのデフォルトに設定します。
もしUNIXに精通しているのであれば、RVMを置き換えるrbenvがあります。これを設定するにはさらに作業が必要ですが、Rubyの複数のバージョンをインストールするためのより軽いアプローチです。
ruby
コマンドを実行して、正しいバージョンがインストールされていることを確認してそれをデフォルトのバージョンに設定します。
$ ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]
それができたら次にRailsを以下のコマンドでインストールします。
$ gem install rails
このコマンドで最新版のRails(現在は3.1.3)がインストールされます。特定のバージョンをインストールしたい場合は --version
オプションを使います。
$ gem install rails --version 2.1
参考にするチュートリアルと一致したRailsの正しいバージョンをインストールすることが重要です。例えば、Rails 2.3用に書かれた本を持っていたら、そのバージョンのRailsをインストールするべきです。そのチュートリアルがどのバージョンのRailsを使っているのかわからない場合は、WikipediaのRuby on Railsのページに、主なバージョンの公開日の一覧表があるので、チュートリアルの発行日が分かっているのであればそれがどのバージョン向けに書かれているか推測できるでしょう。Railsをインストールしたら、現在実行しているバージョンを次のコマンドで確認できます。
$ rails -v Rails 3.1.3
Railsの複数のバージョンをインストールする場合、 互換性がない組み合わせがあるので気をつけてください。そのような場合にはRVM gemsetsを使って、インストールするRailsのバージョンごとに個別にRubyをインストールするのがいいでしょう。
チュートリアル
Railsをインストールして利用できるようになったら、チュートリアルに従って作業をしてみましょう。最初に取り組むものとしてのお勧めはRuby On Rails Guidesです。このサイトには、わかりやすいGetting Startedセクションがあり、簡単なブログアプリケーションの作り方が紹介されていて、簡単なRailsアプリケーションを作成するのにどのような作業が含まれるのかについて理解することができるでしょう。このようなチュートリアルに取り組んでみて自分には難しすぎると感じたとしても、それは十分に理解できることです。すべてを一度に理解しようとする必要はなく、ここでは継続することが重要です。
Rails For Zombiesは取り組むべき価値があるもう一つのチュートリアルです。楽しみながらインタラクティブな方法で、Railsアプリケーションの構築に含まれる作業がわかります。またThe Ruby on Rails Tutorialもおすすめです。これはRailsのほぼすべて機能と関連する題材(Ruby、Git、Heroku、など)を扱っています。一度にすべてに取り組む必要はないですが、一度見てみることをお勧めします。
分割して理解する
いくつかのチュートリアルを試してみた後でまだピンと来ないようであったら、分割統治(divide-and-conquer)のアプローチを試してみるのもいいでしょう。Railsは多くの種類の技術を利用していて、一度に学ぶには量が多すぎるかもしれません。一度に1トピックに集中するアプローチをとって、各技術を個別に習得するのがいいでしょう。Railsアプリケーションは、Ruby、HTML、CSSとSASS、JavaScriptとCoffeeScript、SQLを利用します。これらのそれぞれの基礎を勉強したら、Railsの学習もずっと簡単に感じるでしょう。多くの人にとって、もっとも大きい対象はRubyそれ自体です。プログラミングが初めてという場合は、Chris Pineによる“Learn to Program”がRubyの基本と一般的なプログラミングの考え方を教えてくれます。
Try Rubyのサイトでは楽しみながらインタラクティブにRubyの基礎を学ぶことができます。それから、ターミナルでirb
を実行することでRubyコードをインタラクティブに実行できることも忘れないでください。Railsアプリケーション内では、rails console
コマンドを実行してそのアプリケーションの環境を読み込むことができます。これは、自分のアプリケーションを使って試しながら何かを学ぶという優れた方法です。
Rubyのスキルにさらに磨きをかけるために、いろいろな課題に挑戦することができます。Ruby Quizは古いながらも優れたサイトです。多種に渡る課題のアーカイブがあり、好きなものを選んでそれに対する解決方法をコーディングしていきます。Ruby Learning Blogにも学習用の課題があり、ホームページにその一覧があります。さらに新しく同時にさらに難しい課題に挑戦したければ、Codebrawlを見てみてください。楽しいアイデアに挑戦してスキルを向上できます。最後にRyan BatesのRuby Warriorプロジェクトも試してみてください。ゲームを楽しみながらRubyを覚えることができます。
自分自身のアプリケーション
チュートリアルや課題に挑戦するのもいいですが、自分自身のRailsアプリケーションを作成することの方がやりがいがあるでしょう。アプリケーションのためのすばらしいアイデアを持っているのであれば、どこから始めればいいでしょうか? ユーザインターフェースから始めるのはいい案です。アプリケーションの各ページを、ペンと紙を使ってスケッチするか、あるいはデジタルな方法でBalsamiq Mockupsなどのプログラムを使いましょう。それによってアプリケーションをリソースに分解できます。例えば、フォームは通常リソースを作成したり編集するのに使います。その他のページではリソースを一覧表示したり個別に詳細情報を表示したりします。その後それらのリソースについてモデルやコントローラを作成できるようになります。そのようにしてRailsアプリケーションを順に組み立てていくことができます。
アプリケーションを作成しているときには、チュートリアルではカバーされていない部分にぶつかることもあるでしょう。そこでRailsCastsが登場します。あなたのアプリケーションにいろいろな機能(例えば認証、管理など)を付加するときの参考となるでしょう。ほとんどのエピソードにはソースコードが含まれ、ダウンロードして自分自身でアプリケーションを実際に実行して試すことができます。最近のエピソードでは、プロジェクトの変更前と変更後のバージョンが含まれているので、順を追って試すことができます。
The Ruby Toolboxもすばらしい情報源です。Ruby and Railsでいろいろな種類のタスクを遂行するためのgemのリストが提供されています。忘れずにRails Guidesの残りの部分も見てください。たくさんのすばらしいトピックスがカバーされていて、RubyとRailsのいろいろな部品についてのスキルを磨くことができるでしょう。最後にRuby on Rails APIのサイトも忘れないでください。Railsの特定のメソッドについてのドキュメントを探す場合は、ここを見てみるのがいいでしょう。
ヘルプを求める
自分のアプリケーションで作業を進める間に、自分だけでは解決できない問題にぶつかることもあるでしょう。このような場合には、Ruby and Railsコミュニティに助けを求めることもできます。まずRails Talkメーリングリストから始めるのがいいでしょう。すでに誰かが似た問題を持っていなかったかをアーカイブで探し、なければ質問をしましょう。StackOverflowもプログラミング関連の質問ができる優れたサイトです。質問を投稿する場合は、忘れずにruby-on-railsのタグを付けましょう。