【ハウツー】

祝2歳!! Ruby on Rails 1.1 + MySQL Administratorで日記システムを作ろう

 

Ruby on Rails

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 インストール

RoR 1.1をインストールするには、まずRuby 1.8.4 か1.8.2をインストールする必要がある。1.8.3では動作しないため、すでに1.8.3を使っている場合はバージョンアップする必要がある。

次にRubyのパッケージマネージャであるRubyGemsをインストールする。RubyGemsを使わずに自力で関連パッケージをインストールするのは面倒。RubyGemsを使った方がいいだろう。パスを設定したら、RubyGemsを使ってプロンプト2.1のようにRoRをインストールする。

プロンプト2.1 RubyGems 経由で RoR をインストール

% gem install rails --include-dependencies

RoRのサイトにはWindows向けのパッケージが用意されているので、Windowsプラットフォームではこれを使うといい。パスを通したあと、プロンプト2.1のようにRoRをインストールする。それ以外のプラットフォームでは、プラットフォームに用意されているパッケージシステムからインストールすると簡単だ。

インストール後はrails(1)コマンドを実行できることを確認しておいてほしい。引数になにも指定しなければ、オプションの説明が表示されるはずだ。

データベース

RoRはデータベースとともに動作させてこそその強みを発揮する。RoRにはデータベースは含まれおらず、各自で用意する必要がある。MySQL、PostgreSQL、SQLite、H2、Apache Derby、Oracleなど、どのデータベースを使ってもいいが、ここでは最初からドライバが提供されているMySQLを使うことを念頭に説明する。データベースのインストールはプラットフォームごとの方法で実施してほしい。

ここで用意するデータベースは次のとおり。

表3.1 データベース

項目 内容
データベース名 demo_development
テーブル名 diaries

表3.2 テーブル

カラム名 種類
id INT 主キー, 自動インクリメント
date DATE
title VARCHAR(255)
content TEXT

表3.3 アクセスするユーザ

項目 内容
ユーザ名 testuser
パスワード testpasswd

表3.4 デプロイホスト

項目 内容
データベース動作ホスト localhost
RoR動作ホスト localhost

管理の対象となるテーブル名は複数形にする必要があるほか、テーブルにはかならずINT型のidを用意し、それは主キーおよび自動インクリメントである必要がある、といった制約がある。ここでは日記を保持するテーブルをdiariesとして用意し、日付、タイトル、日記の内容をそれぞれカラムとして用意した。

データベースにアクセスするユーザや、デプロイするホストも上記のとおりだ。これらが動作するようにデータベースの設定を実施してほしい。MySQLの場合、図3.5や図3.6のようにMySQL Administratorを使うと簡単に設定できる。

図3.5 MySQL Administrator – データベースおよびテーブルの作成・設定

図3.6 MySQL Administrator – ユーザアカウントの作成とアクセス許可設定

リスト3.7 SQLでテーブルを作成する場合の例

CREATE TABLE `demo_development`.`diaries` (
  `id` INT  NOT NULL AUTO_INCREMENT,
  `date` DATE  NOT NULL DEFAULT '2006/07/28',
  `title` VARCHAR(255)  NOT NULL DEFAULT '',
  `content` TEXT  NOT NULL DEFAULT '',
  PRIMARY KEY(`id`)
)
ENGINE = MYISAM;

CUIコンソールから設定するなら、たとえばリスト3.7のようなクエリを発行する。テーブルへのアクセス制御など、GUI管理アプリケーションが用意されているデータベースなら、それを使うといいだろう。

RoRで日記システム構築

データベースの準備が整ったらRoRを実行する。まずはプロンプト4.1のようにして"ベースプラットフォーム"を作成する。demoフォルダが作成され、動作に必要になるファイルとフォルダが作成される。RoRをはじめて使う場合、どういったファイルが作成されているか調べておくと良いだろう。

プロンプト4.1 RoR ベースプラットフォームを作成

% rails demo

次に、接続するデータベースに合わせてdemo/config/database.ymlファイルを編集する。developmentターゲットが用意されているため、たとえばここではリスト4.2のように変更しておく。ここで紹介したものとは別の方法で作成した場合、それに合わせて編集してほしい。

リスト4.2 demo/config/database.ymlをデータベースに合わせて編集

development:
  adapter: mysql
  database: demo_development
  username: testuser
  password: testpasswd
  host: localhost

次に、プロンプト4.3にように用意したテーブルに対してモデルを作成する。ここで、テーブル名がdiariesという複数形であることに対して、指定しているモデル名は単数形であることに注目してほしい。これは議論を呼ぶところでもあるが、慣例的にこのような命名規則が採用されている。この辺りは好みがわかれるところかもしれない。

プロンプト4.3 テーブルに対応するモデルを作成

% cd /pathto/demo/
% ruby script/generate model Diary

次にコントローラを作成するのだが、一式そろったScaffoldが用意されているので、ここではScaffoldを作成する。

プロンプト4.4 Scaffoldを作成

% cd /pathto/demo/
% ruby script/generate scaffold Diary

これで準備完了だ。プロンプト4.5のようにしてWebアプリケーションサーバを実行する。RoRにはWEBrickというWebアプリケーションサーバが用意されているため、動作試験にはこれをもちいると簡単で済む。

プロンプト4.5 Webアプリケーションサーバの起動

% cd /pathto/demo/
% ruby script/server

Hello RoR!

まずWebブラウザから「http://0.0.0.0:3000/」にアクセスしよう。図5.1の動作画面が表示されるはずだ。上部に青く表示されている「About your application's environment」をクリックすると、動作環境を表示させることができる。

図5.1 RoR デフォルト画面

次に「http://0.0.0.0:3000/diaries」にアクセスしよう。データベースへのアクセスが実施され、内容がリストで表示される。図5.2ではまだデータベースが空であるため、一覧にはなにも表示されていない。

図5.2 diariesテーブルが一覧表示される

ここで「New diary」リンクをクリックすると図5.3が表示される。用意されているテーブルに応じた入力ページが表示される。データを随時入力していくと、図5.2のページも図5.4のように表示されるようになる。データの再編集や削除も可能だ。

図5.3 データの入力ページ

図5.4 diariesテーブルが一覧表示される – データ入力後

RoRのScaffoldによって自動生成されるWebページはこんなところだ。要するに一番最初のプロトタイプができたことになる。あとはテーブルを増やして扱うデータを増やしたり、自動生成されたHTMLファイルを編集しながら、徐々に目的とするサイトに仕上げていく。最初に簡単に動作するサイトを半自動生成し、あとはそれをベースにして開発をおこなう。プロトタイプ型の開発方法であり、動作が把握しやすいことが特徴だ。

RoR - 今後の課題は初期導入の容易性か

RoRは一度動き出してしまえば、かなり簡単だ。半自動生成された基礎をいぢりながら仕上げていく作業は、デベロッパとしても楽しい作業である。

いっぽう、RoRは最初に動作するものができるまで、前段階に時間がかかる。Rubyの導入、RubyGemの導入、RoRの導入、データベースの導入、規則にそったテーブルの作成、アクセスの設定、などなど。初心者にとってはどれも難しい作業といえるかもしれない。JavaのGrailsがはじめから組み込みデータベースやWebアプリケーション込みで配布されており、すぐに試験できる点から比べると、少しとっつきがたい。

RoRとは別に、導入の簡易さを図るパッケージも出てきている。プラットフォームによってはすでにそういったパッケージが用意されているものもある。RoRは既に述べたような開発の簡単さにより爆発的な普及をみた。今後RoRがさらに普及するには、最初の導入がどれだけ簡単になるかにも注目されるようになるといえそうだ。



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

『リゼロ』、新規描き下ろしイラストを使用したラム&レムの新アイテム登場
[18:39 8/25] ホビー
山下智久、かっこいいアリ役に!? キリギリス役・ピエール瀧とトイレCM
[18:17 8/25] エンタメ
「きぼう」からケニア初の超小型衛星放出が決定 - JAXAなどが機会提供
[18:04 8/25] テクノロジー
ASUS、13.9mmの薄型外付けDVDスーパーマルチドライブ
[18:03 8/25] パソコン
ドスパラ、VR HMD「Vive」推奨PCにRadeon RX 480搭載モデル
[18:03 8/25] パソコン

求人情報