« Rubyで、ブラウザ経由で例外を表示する方法 | トップページ | iBook G4が壊れた。 »

2006.07.18

LacoocanでrubyとActiveRecordを使ってMySQLに接続することに成功。

長い道のりだった…。
一時はあきらめていたが、Don'tStopMusicから貰ったトラックバックでエラーを検出することができるようになったから問題解決できた。

んで、詰まったところを色々まとめてみる。
たぶん、みんなが同じようにして詰まると思う。
でも、LacoocanでActiveRecordを使ってみたいと思う人はいないと思うけど。。。

1:自分が手動で設置したライブラリのパスを登録する方法がわからない。
perlでいうところの、use lib qw(/home/bin/lib);みたいなことをrubyでどうすればいいのかがわからなかった。
これは、Rubyist Magazine - あなたの Ruby コードを添削します 【第 4 回】 Tropyを最近読んだのを思いだして、解決。
こんな感じで書いてあげればいい。
$LOAD_PATH.unshift './lib'
$LOAD_PATH.unshift '../../lib'
でも、あんまりカッコいい書き方じゃないなぁ、、たまにrubyってこういう構文があってダサい。

別にこういう風に書いてあげてもいい。
require '../../lib/active_support'
require '../../lib/active_record'


2:erbで改行を防止するための <% -%>とかhtmlエスケープの<% h hoge %>のhとかを使うとエラーになる。
これは普段Railsしか使っていなかったからはまった。
まず、 h を使うためには、
require 'erb'
のあとで
include ERB::Util
をしないといけなかったらしい。

んで、 - を使うためには
erb = ERB.new(template, nil, "-")
ってしないといけなかったらしい。わかるかっての。

3:LacoocanでActiveRecord, ActiveSupportをrequireすると、他のライブラリも足りなくて落ちる。っていうよりも、Lacoocanで標準インストールされているlogger.rbをrequireしただけで落ちるんですけど、どうなんですか?
単純にライブラリを追加インストールしてあげればいい。
僕は、ActiveRecord, ActiveSupport, benchmark.rb, monitor.rbを適当なlibをフォルダに入れてアップロードして
$LOAD_PATH.unshift '../../lib'
した。
問題なく使えているっぽい。

4:LacoocanのMySQLのデータベースパスワードがわからないんですけど。。
管理画面の設定画面から設定できるようになっている。

5:LacoocanのMySQLの各種設定がわからないんですけど。。。
これ凄くわかりにくいけどこんな感じ。
:adapter => 'mysql',
:host => 'mysql',
:username => 'nsEYSG9a',
:password => '**********',
:database => 'nsEYSG9a'
特にわかりにくかったのが、hostとdatabase。hostがmysqlって…(笑)

んで、今回作ったアプリケーションがこれ。
http://weblog.news.coocan.jp/work/ruby/projects/test/test.cgi

でもって、サンプルコードがこれ。
「test.cgi」をダウンロード
「bookmark.rhtml」をダウンロード
「page.rb」をダウンロード

O/Rマッパークラスである、Class Page(page.rb)がたったの2行しかないことに注目。
あと、test.cgi本体も実質的には10行前後しかない。
これで、データベースに接続して、インサートして、ロードしてテンプレートに出力までしてくれるんだから、ActiveRecord, erbは偉大だ。そしてそれを可能にしているRubyも偉大だ。

ここまでできれば、あとはどうにでもなるな。

↓1日1ポチッとをお願いします!励みになります!
ポチっとよろしく!

|

« Rubyで、ブラウザ経由で例外を表示する方法 | トップページ | iBook G4が壊れた。 »

ruby」カテゴリの記事

コメント

日本語で書いてください。

投稿: いも | 2006.07.18 01:35

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/22269/10988726

この記事へのトラックバック一覧です: LacoocanでrubyとActiveRecordを使ってMySQLに接続することに成功。 :

« Rubyで、ブラウザ経由で例外を表示する方法 | トップページ | iBook G4が壊れた。 »