Aptana RadRails on OSX Leopard で Ruby on Rails + MySQL5 アプリ開発

Aptana RadRails で新規 Rails プロジェクトを作成。プロジェクト名:demo、データベース:MySQLWEBrick サーバーを選択。
プロジェクトを作成すると まず Ruby gems 2.0.2 がないというエラーが出る。

Missing the Rails 2.0.2 gem. Please `gem install -v=2.0.2 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

しかし、ターミナルで確認すると Rails 2.0.2 が入っているんだけど、なぜだろう?

$ rails -v
Rails 2.0.2

設定ファイル config/environment.rb のバージョン指定を書き換えるか、gem を使ってインストールせよ、とのことなのだけど、調べてみるとrails-2.0.2 ではなく rails-2.0.2.9216 がインストールされているようだ。

$ ls /Library/Ruby/Gems/1.8/gems/ | grep rails*
rails-2.0.2.9216/

そこで、config/environment.rb のバージョン指定を 2.0.2 → 2.0.2.9216 に修正。

次に MySQL の接続エラーが出るので、こちらも素直にインストール。

sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

さらに、MySQL のルートユーザーにパスワードを設定している場合は、/demo/config/database.yml ファイルにパスワードを書き込んでやる必要がある。

これでやっとアプリケーションの開発を始められる状態になった。(^_^

Hello World! を作成

以下『RailsによるアジャイルWebアプリケーション開発 第2版』に沿ってやってみる。
Aptana RadRails の「ジェネレーター」タブを開き、生成プログラム:controller が選択された状態で、パラメーターのところに Say と入力して「実行」すると、コンソールタブに以下のように表示され、いくつかのファイルが自動生成されたことがわかる。

      exists  app/controllers/
      exists  app/helpers/
      create  app/views/say
      exists  test/functional/
      create  app/controllers/say_controller.rb
      create  test/functional/say_controller_test.rb
      create  app/helpers/say_helper.rb
script/generate controller Say
>
>

app/controllers/say_controller.rb を開いて hello というアクションを追加する(def hello から end までの部分)。RadRails のコード補完が動作するので便利。

class SayController < ApplicationController
  def hello 
  end
end

次に View を作成する必要があるが、これはメニューバーの「V」のアイコンをクリックするだけでオーケー(超便利)。hello アクションのために hello.rhtml を作成する。
デフォルトでは charset=iso-8859-1" のページが作成されるので、文字コードUTF-8 などにしておいた方が便利だろう。これは「ヘルプ > 設定 > Aptana > エディター > ERB/RHTML」のところで変更できる。

さて、いよいよブラウザーhttp://127.0.0.1:3000/say/hello にアクセスすれば Hello World! が表示されるはずなのだけど。

Unknown database 'demo_development'

Hello World! ではデータベースなんか不要なのだけど、データベースに MySQL を指定したために、demo_development というデータベースがないよ、というエラーが出る。やれやれ。この際だから、phpMyAdmin を入れておこう。

OSX LeopardphpMyAdmin をインストール

Mac OS X(Leopard)にphpMyAdmin 2.11 をインストールの通りにやるだけ!

とはいえ、いくらか違っている箇所もあった。phpMyAdmin の設定ファイル(config.inc.php)には、以下の項目も必要だった。

$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['socket']        = '/tmp/mysql.sock';
$cfg['Servers'][$i]['connect_type']  = 'socket';

Apache2 の場所も違っていた(/etc/apache2)。また、httpd.conf を直接変更せずに、/etc/apache2/other/phpMyAdmin.conf ファイルを作って以下を記入した。このファイルは httpd.conf の最後に読み込まれる。

# phpMyAdmin
Alias /phpMyAdmin/ "/var/www/phpMyAdmin/"

<Directory "/var/www/phpMyAdmin">

    Options All
    AllowOverride All

    Order Allow,Deny
    Allow from localhost

</Directory>

また、httpd.conf を編集して php5 のモジュールを有効化してやる必要がある(行頭の # を消すだけ)。

LoadModule php5_module        libexec/apache2/libphp5.so

Hello World! に成功

phpMyAdmin で demo_development という空のデータベースを作成してやってから、ブラウザーhttp://127.0.0.1:3000/say/hello にアクセスすると、やっと Hello World! が表示された。