【ハウツー】
David Heinemeier Hansson氏は6月26日(米国時間)、Ruby on Rrails 1.1を公開、27日にはセキュリティフィックスリリースとして1.1.3、30日にはエラッタリリースとして1.1.4を公開した。RoRはRubyで作成されたフルスタックのWebアプリケーションフレームワーク。スクリプト言語Rubyの特性を活かして開発されたフルスタックフレームワークで、Webアプリケーション開発の負荷を軽減するものとして高い人気を誇る。
そして7月25日(米国時間)には最初にリリースされた0.5.0から数えて2歳の誕生日をむかえた。ここでいったんRoRを振り返るとともに、ぜひとも実際に試してみてほしいとおもう。簡単な日記システムを作る方法を紹介するので、参考にしていただきたい。
RoR 1.1をインストールするには、まずRuby 1.8.4 か1.8.2をインストールする必要がある。1.8.3では動作しないため、すでに1.8.3を使っている場合はバージョンアップする必要がある。
次にRubyのパッケージマネージャであるRubyGemsをインストールする。RubyGemsを使わずに自力で関連パッケージをインストールするのは面倒。RubyGemsを使った方がいいだろう。パスを設定したら、RubyGemsを使ってプロンプト2.1のようにRoRをインストールする。
RoRのサイトにはWindows向けのパッケージが用意されているので、Windowsプラットフォームではこれを使うといい。パスを通したあと、プロンプト2.1のようにRoRをインストールする。それ以外のプラットフォームでは、プラットフォームに用意されているパッケージシステムからインストールすると簡単だ。
インストール後はrails(1)コマンドを実行できることを確認しておいてほしい。引数になにも指定しなければ、オプションの説明が表示されるはずだ。
RoRはデータベースとともに動作させてこそその強みを発揮する。RoRにはデータベースは含まれおらず、各自で用意する必要がある。MySQL、PostgreSQL、SQLite、H2、Apache Derby、Oracleなど、どのデータベースを使ってもいいが、ここでは最初からドライバが提供されているMySQLを使うことを念頭に説明する。データベースのインストールはプラットフォームごとの方法で実施してほしい。
ここで用意するデータベースは次のとおり。
| 項目 | 内容 |
|---|---|
| データベース名 | demo_development |
| テーブル名 | diaries |
| カラム名 | 型 | 種類 |
|---|---|---|
| id | INT | 主キー, 自動インクリメント |
| date | DATE | |
| title | VARCHAR(255) | |
| content | TEXT |
| 項目 | 内容 |
|---|---|
| ユーザ名 | testuser |
| パスワード | testpasswd |
| 項目 | 内容 |
|---|---|
| データベース動作ホスト | localhost |
| RoR動作ホスト | localhost |
管理の対象となるテーブル名は複数形にする必要があるほか、テーブルにはかならずINT型のidを用意し、それは主キーおよび自動インクリメントである必要がある、といった制約がある。ここでは日記を保持するテーブルをdiariesとして用意し、日付、タイトル、日記の内容をそれぞれカラムとして用意した。
データベースにアクセスするユーザや、デプロイするホストも上記のとおりだ。これらが動作するようにデータベースの設定を実施してほしい。MySQLの場合、図3.5や図3.6のようにMySQL Administratorを使うと簡単に設定できる。
CUIコンソールから設定するなら、たとえばリスト3.7のようなクエリを発行する。テーブルへのアクセス制御など、GUI管理アプリケーションが用意されているデータベースなら、それを使うといいだろう。
データベースの準備が整ったらRoRを実行する。まずはプロンプト4.1のようにして"ベースプラットフォーム"を作成する。demoフォルダが作成され、動作に必要になるファイルとフォルダが作成される。RoRをはじめて使う場合、どういったファイルが作成されているか調べておくと良いだろう。
次に、接続するデータベースに合わせてdemo/config/database.ymlファイルを編集する。developmentターゲットが用意されているため、たとえばここではリスト4.2のように変更しておく。ここで紹介したものとは別の方法で作成した場合、それに合わせて編集してほしい。
次に、プロンプト4.3にように用意したテーブルに対してモデルを作成する。ここで、テーブル名がdiariesという複数形であることに対して、指定しているモデル名は単数形であることに注目してほしい。これは議論を呼ぶところでもあるが、慣例的にこのような命名規則が採用されている。この辺りは好みがわかれるところかもしれない。
次にコントローラを作成するのだが、一式そろったScaffoldが用意されているので、ここではScaffoldを作成する。
これで準備完了だ。プロンプト4.5のようにしてWebアプリケーションサーバを実行する。RoRにはWEBrickというWebアプリケーションサーバが用意されているため、動作試験にはこれをもちいると簡単で済む。
まずWebブラウザから「http://0.0.0.0:3000/」にアクセスしよう。図5.1の動作画面が表示されるはずだ。上部に青く表示されている「About your application's environment」をクリックすると、動作環境を表示させることができる。
次に「http://0.0.0.0:3000/diaries」にアクセスしよう。データベースへのアクセスが実施され、内容がリストで表示される。図5.2ではまだデータベースが空であるため、一覧にはなにも表示されていない。
ここで「New diary」リンクをクリックすると図5.3が表示される。用意されているテーブルに応じた入力ページが表示される。データを随時入力していくと、図5.2のページも図5.4のように表示されるようになる。データの再編集や削除も可能だ。
RoRのScaffoldによって自動生成されるWebページはこんなところだ。要するに一番最初のプロトタイプができたことになる。あとはテーブルを増やして扱うデータを増やしたり、自動生成されたHTMLファイルを編集しながら、徐々に目的とするサイトに仕上げていく。最初に簡単に動作するサイトを半自動生成し、あとはそれをベースにして開発をおこなう。プロトタイプ型の開発方法であり、動作が把握しやすいことが特徴だ。
RoRは一度動き出してしまえば、かなり簡単だ。半自動生成された基礎をいぢりながら仕上げていく作業は、デベロッパとしても楽しい作業である。
いっぽう、RoRは最初に動作するものができるまで、前段階に時間がかかる。Rubyの導入、RubyGemの導入、RoRの導入、データベースの導入、規則にそったテーブルの作成、アクセスの設定、などなど。初心者にとってはどれも難しい作業といえるかもしれない。JavaのGrailsがはじめから組み込みデータベースやWebアプリケーション込みで配布されており、すぐに試験できる点から比べると、少しとっつきがたい。
RoRとは別に、導入の簡易さを図るパッケージも出てきている。プラットフォームによってはすでにそういったパッケージが用意されているものもある。RoRは既に述べたような開発の簡単さにより爆発的な普及をみた。今後RoRがさらに普及するには、最初の導入がどれだけ簡単になるかにも注目されるようになるといえそうだ。
| おめでとうRuby on Rails、満2歳の誕生日むかえる [2006/7/27] |
| Ruby on Railsセキュリティフィックス"やり直し"-ユーザはアップグレードを [2006/7/4] |
| Ruby on Railsセキュリティフィックス、全ユーザにアップグレードを推奨 [2006/6/28] |
| Ruby on Railsまたも進化、1.1 公開 [2006/3/29] |
| ついに1.0! Ruby on Rails [2005/12/15] |
| Ruby on Rails統合開発環境 - RadRails 0.5公開 [2005/11/29] |
| Ruby on Rails RC2 - 待望のリリース1.0まであと少し [2005/10/21] |
| アジレント、ミリ波信号解析ソリューションを発表 [16:54 5/24] |
| NXP、独自のTrench 6テクノロジによる車載用パワーMOSFETファミリを発表 [16:52 5/24] |
| 産総研、光照射で損傷を自己修復できるゲル状スマートマテリアルを開発 [16:49 5/24] |
| アンテナ設置数が半分の33台に到達 - アルマ望遠鏡、2kmの干渉試験も成功 [16:45 5/24] |
| 人工知能実現へ一歩前進!? - NIMS、環境依存型「シナプス素子」を開発 [16:40 5/24] |
|
大阪駅「ギャレ大阪」跡地に約80店舗入居の新商業施設開業へ - JR西日本 [17:48 5/24] ライフ |
|
ネイティブの好むフレーズを集めたビジネス英会話ブック発売 - アルク [17:35 5/24] ライフ |
|
自分らしさ発見! マイナビ×サンマリエのスペシャルセミナー開催 [17:21 5/24] ライフ |
|
『好きっていいなよ。』、2012年秋にTVアニメ化! スタッフ&キャストを紹介 [17:12 5/24] ホビー |
|
[魔法少女まどか☆マギカオンライン]ボードゲームで魔女と戦闘 近くβテスト [17:10 5/24] ホビー |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。