Ruby連載の第3回目にあたる今回は、MySQLを使ったRuby on Rails(以下Rails)でのWebアプリ構築の第一歩として、準備作業を解説します。
本連載では、@YMCのVPSサービスを用いて説明を進めていきます。利用するVPSサービスにより細かな違いはありますが、大きな流れは同じですから、ご利用の環境に合わせて読み替えてください。
スケジューラを作ろう
Railsでのアプリ構築の例として、簡単なWebスケジューラを作成します。件名や日時、概要を入れられる簡易なものです。
では、開発のための準備を進めましょう。作業する内容は以下の通りです。
- Railsスケルトンの作成
- MySQLデータベースの定義
- Railsでのデータベース設定
- MySQLテーブルの作成
Railsスケルトンの作成
最初からコードを書いてアプリを作成することも可能ですが、Railsでは自動生成されるスケルトン(骨組み)を基に手を加えていくのが簡便です。
Railsスケルトンは、「rails ディレクトリ名」とコマンドで作成できます。public_htmlの下など、外部からアクセス可能なディレクトリに移動してから作成しましょう。
今回は「schedule」というディレクトリにしますので、public_htmlディレクトリをカレントにしてから
と実行します。-dオプションの引数で、データベースをMySQLに指定しています。
カレントディレクトリにscheduleディレクトリが作成され、その中にさまざまなサブディレクトリやファイルが生成されます。
MySQLデータベースの定義
続いて、MySQLデータベースを定義します。データベース名はschedule_development、ユーザ名/パスワードはいずれもscuserとします。
新規ユーザは、下記のようなMySQLコマンドで作成できます。
コマンドラインでの操作は敷居が高く感じられるなら、phpMyAdminなどのGUIツールを使ってもかまいません。
続いて、空のデータベースを下記のMySQLコマンドで作成します。
これも、phpMyAdminなどで作成してもかまいません。その場合は、データベース名を「schedule_development」にすることと、文字コードをUTF-8にすることを忘れないでください。
Railsでのデータベース設定
データベースを作成できたら、Railsにデータベースを設定します。設定するには、先ほど作成したscheduleディレクトリ内のconfigディレクトリにあるdatabase.ymlファイルを変更します。
database.ymlファイルには「development」「test」「production」の3つのセクションがあり、今回は開発用なのでdevelopmentセクションの内容を変更します。具体的な変更箇所は、developmentセクションのusernameとpasswordです(リスト1)。
これで、RailsでMySQLデータベースを利用する準備が整いました。
MySQLテーブルの作成
次は、スケジュールデータを格納するためのMySQLテーブルを作成しましょう。まず、データを格納するモデルの雛形を作成します。モデル名は単数形、頭文字は大文字にします。
db/migrateディレクトリに、20090602150709_create_schedules.rbのように日付で始まるマイグレーションファイルが作成されます。このファイルを編集してrakeコマンドを実行すると、テーブルを作成できます。
テーブルの構成は、表1のように決めました。この構成に基づいて、先ほどのマイグレーションファイルを変更しましょう(リスト2)。
表1 schedulesテーブルの定義
フィールド名 | 型 | 説明 |
id | 整数 | (自動生成)連番、主キー |
subject | 文字列(32文字) | 件名 |
sdate | 日時(datetime) | 開始日時 |
edate | 日時(datetime) | 終了日時 |
description | 文字列 | 概要 |
以上で、下準備は完了です。
次回予告
今回は準備だけで終わってしまったので、次回は実際に開発を進めていきます。