3rdRailによるRailsプログラミング入門

第1回 初めてのRailsアプリケーション開発

富田 陽介
Banana Systems株式会社

2009/3/16

3rdRailのメインウィンドウの見方を学ぼう

 プロジェクト作成が終わると、メインウィンドウが画面4のような状態で表示されます。

 ウィンドウ中に表示されている各コンポーネントは、任意の位置に移動したり、表示の有無を設定したりすることができます。基本的な表示構成は、Eclipseをお使いの方にはおなじみのものと思いますが、ここでは、画面4のとおりの3ペイン構造になっているとして、表示内容を見ていきましょう。

 まず、左側のペインには[Railsエクスプローラー]が表示されています。ここには、作成済みのRailsプロジェクトを起点としたツリーが一覧表示されます。

画面4 プロジェクト作成後のメインウィンドウ(画像をクリックすると拡大します)

 作成済みの「tsubuyaki」アプリケーションを構成しているツリー要素として、上から[構成][データベース][モデル][リソース][コントローラー]などが並んでいることが確認できます。ここでは、個々の詳細を説明しませんが、ひとまず以下の4つのアプリケーション構成要素を押さえておきましょう。

構成

 ここには主に、作成するアプリケーションの全体動作にかかわる要素がまとめられています。データベースの設定(データベースの内容そのものは[データベース]以下にありますが、設定はここにあります)や、開発/テスト/本番環境別の設定ファイル、リクエストURL=>コントローラ割り当てのルーティング設定などが含まれます。

 今回の説明範囲では、ここに触れることはありませんが、全体動作にかかわる重要な要素ですので、どういったものが含まれるかを確認しておきましょう。

データベース

 ここには、データベース上の現在のテーブル定義や、テーブル作成や変更(マイグレーション)に使用したスクリプトなどが含まれます。

モデル

 ここには、アプリケーションで使用しているモデルクラス群のスクリプトが含まれます。基本的なRailsアプリケーションは、モデルとデータベースのテーブルが1対1対応するように作成していきます。

 Ruby on Railsには、ActiveRecordと呼ばれる強力なO/Rマッパが付属しているため、モデルをうまく設計することで、(MySQLやPostgreSQLなどの)データベースの違いや、SQL構文をほとんど意識することなく、データベースを利用したアプリケーションを作成できます。

関連記事:
リンク ActiveRecordを使ったソースコードを読もう
http://www.atmarkit.co.jp/fcoding/articles/reading/03/reading03a.html

コントローラー

 ここには、アプリケーションで使用しているコントローラクラス群のスクリプトと、コントローラの各アクションが対応するビューファイル(テンプレート)が含まれます。基本的なRailsアプリケーションでは、コントローラとモデルが1対1対応するように作成していきます。

 メインウィンドウの構成要素の確認に戻りましょう。左下には[アウトライン]が表示されています。ここでは、編集中のスクリプトで定義しているクラスや、そのクラス以下で定義されているメソッドや各種プロパティを一覧することができます。

 真ん中のペインは、編集エリアとなっています。ここでスクリプトの編集を行います。複数のファイルを同時にオープンしておくことができ、タブによって編集ファイルの切り替えを行えます。

 右側のペインには[依存関係]が表示されています。ここには、編集中のスクリプトで定義しているクラスやメソッドが依存しているほかのライブラリやクラスなどが一覧されています。

 最後に、中央下のペインには、開発中に登録した[タスク]や、作成済みのアプリケーション内で発生している[問題](例えば、スクリプトの構文チェックなどは、定期的に自動実行され、問題があった場合はここに表示されます)などがタブ表示されています。

 ここに表示されている[コンソール]は、3rdRailが搭載する「コマンダー」機能の1つです。ここでは、作成中のRailsアプリケーションに対して、対話的に任意のコードを実行することができます。

 先ほど行った「プロジェクト作成」にて発行されたコマンドや、そのコマンドの実行結果を確認することもできるため、IDEを使いながら、バックグラウンドでどういったことが行われたか/どういったメッセージが表示されたかを確認するために活用できます。

モデルを定義したら一気に実装完了

 ここからは、モデルの定義と簡単な編集機能、画面遷移の作成までを一気に見ていきます。

 まずは、モデルの定義を行います。ここでは、tsubuyakiアプリケーションにて、思い付いた「ひと言」を取り扱うモデル「hitokoto」を定義していきます。

 IDE操作を行う前に、hitokotoモデルに必要そうな属性を考えておきましょう。作成するアプリケーションはシングルユーザーを想定しており、かつ、思い付いた「ひと言」を単純に取り扱いできればいいだけですので、以下の属性があれば十分そうです。

  • 「ひと言」文字列
  • 登録日時
  • 更新日時

 それでは、上記のモデルを作成していきましょう。メインウィンドウ左、[Railsエクスプローラー]に表示されているtsubuyakiプロジェクト以下の[モデル]を右クリックし、[リソースの新規作成]をクリックします。以下のダイアログが表示されます。

画面5 Railsリソース新規作成ウィザード

 このウィザードでは、アプリケーションで使用するモデルを簡単に作成できます。[プロジェクト]に現在作成中のtsubuyakiが指定されていることを確認し、[モデル名]にhitokotoと入力します。

 続いて[属性]を指定します。ここには、上記で検討した属性を指定していきます。[追加]ボタンをクリックし、[名前]列にhitokotoと入力、[タイプ]列に「string」を選択しましょう。

 「ひと言」は必須にしたいですから、[必須]列にもチェックを入れておきます。チェックを入れる際は、['必須'カラムの検証の設定]ダイアログが表示され、入力必須属性に対するバリデーションのタイミングや、バリデーションエラー時に表示するメッセージなどを指定できますが、ここでは、そのまま[OK]を押して次に進みましょう。

 次に、上記で検討した「登録日時」「更新日時」ですが、これは属性に記入する必要はありません。その下の[マイグレーション]欄にある[生成されたモデルのタイムスタンプ属性を自動的に作成する]をチェックしておけば、これらの属性は自動的にモデルに定義されるようになっています。

 [マイグレーション]欄のそのほかのチェック、[生成されたモデルのマイグレーションを作成する]と[モデルの作成後にマイグレーションを実行する]にもチェックが入っていることを確認しましょう。

 こうしておくことで、モデルの定義終了と同時に、データベース定義ファイルを作成し、データベースへhitokotoモデル用のテーブルを作成するところまでが、自動的に実行されることになります。

 さらに、一番下の[スカフォルド]欄の[生成されたリソースのスカフォルドを作成する]もチェックしておきましょう。

 「スカフォルド(scaffold)」とは、Ruby on Railsが提供している、モデルの簡易的な編集機能を実装するフレームワークです。ここにチェックを入れておくことで、上記で指定したモデルを作成する際、簡易的な編集画面までを一気に自動生成することができます。

 上記をすべて入力したら、[完了]ボタンを押します。

 モデルクラスのスクリプトファイルである「hitokoto.rb」や、hitokotosテーブル定義を行うマイグレーションファイルが自動生成され、データベースへのテーブル作成が実行されます。

 また、スカフォルド作成により、コントローラクラスのスクリプトファイル「hitokotos_controller.rb」や、作成したモデルを作成/一覧/更新/削除するためのアクションメソッド、ビューファイル(テンプレート)群が自動生成されます(テーブル名やコントローラ名には、通常、モデル名を複数形に変換したものが使用されます。ここでは、hitokotoがhitokotosに変換されています)。

 実行されたコマンドは、ウィンドウ下の[コンソール]に逐次表示されますので、ざっと目を通しておくといいでしょう。

 また、先ほど確認した[Railsエクスプローラー]の[データベース][モデル][コントローラー]以下に、各種生成された要素群が追加されていますので、何が追加されたのかも確認しておきましょう。今回は、データベースにSQLite 3を使用していますので、[データベース]以下に、データベースファイル「development.sqlite」が作成されていることが確認できるはずです。

 実は、今回作成するアプリケーションの実装は、これですべて完了です。

 スカフォルドを使用するだけの簡単なデータベースアプリケーションであれば、以上のように、ダイアログやウィザードに答えていくだけで、スクリプトファイルをまったく編集することなく、アプリケーション開発を完了できます。

 それでは、続いて、作成されたファイル群の中身を見ていく前に、出来上がったアプリケーションを実行し、動作を確認してみましょう。

2/3

Index
初めてのRailsアプリケーション開発
  Page1
3rdRailとは
初めて作るRailsアプリケーションは……
RubyインタプリタとRailsライブラリのインストール
最初の一歩は「プロジェクト」の作成
Page2
3rdRailのメインウィンドウの見方を学ぼう
モデルを定義したら一気に実装完了
  Page3
Tsubuyakiを動かしてみよう
どんなファイルが自動生成されたのか
コントローラクラスのソースを確認しよう
見た目を担当するビューのコード
まとめ

3rdRailによるRailsプログラミング入門

 Ruby/Rails関連記事
プログラミングは人生だ
まつもと ゆきひろのコーディング天国
 ときにプログラミングはスポーツであり、ときにプログラミングは創造である。楽しいプログラミングは人生をより実りあるものにしてくれる
生産性を向上させるRuby向け統合開発環境カタログ
Ruby on Rails 2.0も強力サポート
 生産性が高いと評判のプログラミング言語「Ruby」。統合開発環境を整えることで、さらに効率的なプログラミングが可能になる
かんたんAjax開発をするためのRailsの基礎知識
Ruby on RailsのRJSでかんたんAjax開発(前編)
 実はAjaxアプリケーション開発はあなたが思うよりも簡単です。まずはRuby on Railsの基礎知識から学びましょう
Praggerとnetpbmで作る画像→AA変換ツール
Rubyを使って何か面白いものを作ってみよう!
 一般的な画像をアスキーアートに変換するツールを作ってみる。さらに出力にバリエーションを持たせてみよう
コードリーディングを始めよう
Railsコードリーディング〜scaffoldのその先へ〜(1)
 優れたプログラマはコードを書くのと同じくらい、読みこなす。優れたコードを読むことで自身のスキルも上達するのだ
  Coding Edgeフォーラムフィード  2.01.00.91


Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

>

Coding Edge 記事ランキング

本日 月間