Rails2.2.2をMacに入れてみたらものすごくハマって涙目><

Macの開発環境構築祭を大絶賛開催中なのでRails2.2.2を入れてみた。
rubyとgemとRailspostgresqlはすでにMacPortsでインストール済み
なところからスタートしてます。

まずはアプリの作成

$ rails testApp --database=postgresql

適当なディレクトリ以下で実行します。DBはpostgresqlを使うので
 --database=postgresqlをつけて実行してます。

DBの設定で涙目><

$ vi database.yml

おなじみdatabase.ymlを修正。Emacs使えよ!なんて言わないで><
といっても接続ユーザー名とパスワード書くだけの簡単なお仕事。
Rails2.2ではrakeコマンドでDBまで作れちゃうんですね。rake++
さっそく実行します。

$ rake db:create
(in /Users/reg/railsApp/testApp)
rake aborted!
Please install the postgresql adapter:
 `gem install activerecord-postgresql-adapter`
 (no such file to load -- pg)

(See full trace by running task with --trace)

というわけで、rakeコマンド失敗してます。
postgresqlのアダプタがないわよ!ばか!
さっさとgem install activerecord-postgresql-adapterってこと
ですね。わかりました。

エラーメッセージに従ってさっそく実行。

$ sudo gem install activerecord-postgresql-adapter
ERROR:  could not find gem activerecord-postgresql-adapter
locally or in a repository

なんということでしょう。gemコマンドまで失敗してます。
activerecord-postgresql-adapterなんてないわよ!バカなの!死ぬの?
と言われます。

ググってみるとgem install pgするといいよ!とgem install postgresする
といいよ!という情報の2通りがありました。
とりあえずgem install pgから。

$ sudo gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.7.9.2008.10.13
1 gem installed
Installing ri documentation for pg-0.7.9.2008.10.13...
Installing RDoc documentation for pg-0.7.9.2008.10.13...

最初なんどか失敗したのですが最終的にはインストールできた。
失敗した原因はpostgresqlにPATHが通ってなかったこと。*1
で、rakeコマンド実行したけど失敗。activerecord-postgresql-adapterがいる
っていうメッセージが出ます。

次にgem install postgres

$gem install postgres
Building native extensions.  This could take a while...
Successfully installed postgres-0.7.9.2008.01.28
1 gem installed
Installing ri documentation for postgres-0.7.9.2008.01.28...
Installing RDoc documentation for postgres-0.7.9.2008.01.28...

インストールはできた。rakeコマンドも実行できた!*2

Modelの作成

$ script/generate scaffold Address name:string address:string

名前とアドレスをあつかうだけの簡単なModel。
終わった後にdb:migrateしてます。

Controllerの作成

$ script/generate controller admin

これも追加、編集、削除するだけの簡単なやつを作成。

Weblicの起動

$ script/server

3000番ポートに常駐します。

ブラウザで確認

http://localhost:3000/Addresss

Model名+sだからこんな感じかと思ったらちがう><

db/migrate以下を見たら20090207182400_create_addresses.rbって
出来てた。なのでコレが正解。ちゃんと複数形を認識してるようです。

http://localhost:3000/Addresses


Railsは普段アワワワってなってる委員長だけどやればしっかりできる子だな。


おしまい。

*1:/opt/local/lib/postgres83/binに通ってなかった

*2:gem uninstall pgしてなかったのでうまくいった原因がわかんない・・・