RedRailsを使ってみる

前回で RoR の基本のキくらいやってみて、なんとなくわかったような気になってみた。バリバリ開発するにはやっぱり開発環境がほしいっすよね。Ruby の開発環境には RDE なんかがメジャー?みたいだけど、RedRails を使ってみることにする。

RedRails は Standalone 版もあるけど、魅力的なのは eclipse の plugin 版もあるということ。慣れ親しんだ eclipseRoR も開発できるならこれに越したことはない。ということで、またまたマイコミさんにお世話になりながら使ってみることに。参考:Ruby on Rails 開発環境"RadRails"

インストール

eclipse3.2 以上とあります。うちの環境では3.3なので大丈夫?eclipse の更新マネージャでインストール可能です。基盤となる Aptana Plugin というのと、RadRails Plugin の二つをインストールする必要があるようです。本家サイトにインストールの詳細があります。

インストール後、eclipse を再起動し、Ruby のパスやら Rails のパスなんかを設定する必要があります。詳細はこちらのサイトで。参照: http://www.geocities.jp/master_rails/radrails.html
こちらは standalone 版について書かれていますが、設定内容は eclipse plugin 版とほぼ同じです。なお、私の入れたバージョン Aptana RadRails 0.8 では、ここで書かれている Mongrel と Ri/rdoc はない模様です。

プロジェクトの作成

マイコミジャーナルの記事では新規でプロジェクトの作成などをやっていないので、以下の要領で AddressBook を作ってみることにする。参考: http://www-06.ibm.com/jp/developerworks/linux/050708/j_l-rubyrails.html

[File] -> [New] -> [Rails Project] で Rails のプロジェクトを作成します。パースペクティブは RedRails にしておいてください。

と、ここまでやってみるもプロジェクトの新規作成がうまくいかない。。。プロジェクトを作っても中身が空っぽになっているのだ。散々悩んだ挙句、Windows Updateのついでに OS再起動するとうまく動いた。困ったときはあわてず騒がず再起動ってか。

さて、プロジェクトを新規作成すると、コマンドラインでやったときと同じように、app、config、db、publicなどのテンプレートができるので、これをベースに開発を進めていく。

モデルの作成

では、モデルを作って見よう。先の developerWorks の例にならってやっていこう。eclipse のコンソールとか出るあたりに、Generator というのがあるはずだ。これの左側にコマンド、右側にモデル名を入れて「Go」だ。ここでは、コマンドは model、モデル名は Contact。

実行すると、ちょっと時間がかかるが、スクリプトを実行したのと同様に(というか、内部でスクリプトを呼び出しているみたい)コンソールに、ファイルの生成メッセージがでるはず。

コントローラの生成

つぎは、コントローラの生成。モデル同様、Generatorで、今度はコマンドを scaffold で実行する。が、ここでエラー。どうやらデータベースがないとだめらしい。scaffold は、データベースの内容を見て、ファイルを生成するらしい。正確には、コントローラやモデルは自動でマッピングするため、データベースに依存するのは、views/contacts/_form.rhtml だけみたいだが。

データベース設定

というわけで、データベースを作る。データベース名、ユーザ、パスワードはさっきの例と同じでいいか。作るテーブルは以下の通り。

CREATE TABLE IF NOT EXISTS contacts (
  id smallint(5) unsigned NOT NULL auto_increment,
  name varchar(30) NOT NULL default '',
  created_on timestamp(14) NOT NULL,
  updated_on timestamp(14) NOT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY name_key (name)
)

config/database.yml のdatabase、username、passwordも環境に合わせて変更。

コントローラ生成 2回目

これでようやく準備完了。もういちど、scaffold でコントローラを生成する。ずらずら〜とファイルができて完成。それにしてもこのGenerator、かなり反応が遅い。止まっているんじゃないかと心配してしまうくらい。このパフォーマンスが改善されるともっといいのに。

サーバ起動

テストとかで使用するWebサーバ、WEBrick は RedRails 上からも実行できる。Generator タブの横に Server というのがあるはず。ここで WEBrick を起動することができる。起動したいサーバを選択して、View の 右上にある実行ボタンを押すか、右クリックして実行することで起動する。

また、サーバを追加することもでき、タイプも WEBrick 以外に MongrellightTPD(詳しくは知らない)などを選べるようだ。またポートなども変更できるので、ぶつかる場合はここで変えるといいだろう。

動作確認

Webサーバを起動したら、ブラウザでアクセスして確認。http://localhost:3001/contacts*1 で確認できる。
レコードの一覧、追加、編集、削除などができるのを確認。

感想

慣れた eclipse で開発できるのはやっぱりイイ。しかし、Generatorの動作がちょっと遅すぎじゃない?外部呼出しだからしかたないかもしれないけど、もうすこしパフォーマンスあがってくれればなぁ。

Rubyエディタは、まあそこそこですね。キーワードハイライトと簡単な制御文、括弧の補完くらいはやってくれます。メソッドの補完とかまでやってくれればもっといいのに。まぁスクリプト言語ではむずかしいかな。

やや機能不足も否めませんが、現状のRubyの開発環境ではかなりいい部類に入るのではないでしょうか。

*1:コマンドラインから WEBrick を起動したときは たしかポート3000だったけど、RedRails では 3001になっている模様。