Rails入門 日程調整アプリを作ろう1

開発環境の構築は終わったので、何かしらアプリを作ってみようと思います。
とは言うものの、1から作る技量はないため、以下のチュートリアルを参考にしてみました。
日程調整アプリを作ろう
実装 -1-(User,Event)
できる限りRadRailsを使用してみることにしました。


とりあえず、1から5まで作成。

1.プロジェクト作成

1-1.ファイル > 新規 > Rails プロジェクトでプロジェクト名:adjusterで終了をクリックします。


1-2.adjusterが新規作成される。

2.データベース作成

ここで問題発生。デフォルトのDB設定がsqlite3になっている。
このチュートリアルはどうやらRails1.2.6を前提に作られているが、現在、構築されている環境はRails2.0.2である。いろいろ調べてみると1から2へのバージョンアップの影響は結構あるみたいで、2に対する入門書もまだ発売されていない。そのため、潔く、Railsのバージョンをチュートリアルに合わせることにする。
対処は簡単。InstantRailsから、InstantRails1.7をダウンロードし直し、フォルダごと置き換えました。*1


2-1.http://127.0.0.1/mysql/からphpMyAdminを起動し、新規データベースを作成する下のテキストボックスに「adjuster_development」を入力し、作成ボタンをクリックするとデータベースが作成されます。

3.モデル作成(User,Schedule,Event)

3-1.Eclipseのジェネレータータブを開き、プルダウンにmodel、テキストボックスにuserを入力し、実行ボタンをクリックします。

これによりuserモデルが作成されます。


3-2.userと同様に、schedule、eventモデルも作成します。

4.マイグレーション定義(User,Schedule,Event)

4-1./adjuster/db/migrate/001_create_users.rbを修正し、カラムを追加します。この際、defがスペルチェックに引っかかってしまっていたので、ウィンドウ > 設定で設定画面を開き、一般 > エディター > テキスト・エディター > スペルの使用するエンジンのスペルを選択をRuby spelling engineに変更しました。

class CreateUsers < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.column :name, :string
      t.column :email, :string
    end
  end

  def self.down
    drop_table :users
  end
end


4-2./adjuster/db/migrate/002_create_schedules.rbを修正し、カラムを追加します。

class CreateSchedules < ActiveRecord::Migration
  def self.up
    create_table :schedules do |t|
      t.column :user_id, :integer
      t.column :event_id, :integer
      t.column :schedule_date, :time
      t.column :attend, :string
    end
  end

  def self.down
    drop_table :schedules
  end
end

suchedule_dateの型datetimeで定義します。


4-3./adjuster/db/migrate/003_create_events.rbを修正し、カラムを追加します。

class CreateEvents < ActiveRecord::Migration
  def self.up
    create_table :events do |t|
      t.column :name, :string
      t.column :note, :text
    end
  end

  def self.down
    drop_table :events
  end
end

5.マイグレーション実行

5-1.EclipseのRake タスクタブを開き、db:migrateと入力し、実行ボタンをクリックします。

これにより、データベースにテーブルが作成されます。


続きはこちら

*1:Eclipse側のRails パス、rake パス、mongrel_rails pathの値と、インストール済みのインタープリターが初期化されることがあるので再確認してください。