本番サーバがRuby Enterprise EditionでRails動かしているということで、ローカル環境を一生懸命あわせにいったんだけど、思わぬところでエラーが落ちてはまったよ。

結局解決しなかったけど、ダメだったところを力任せに書き付けます。このボケがあああああ。

やろうとしたこと

OS:

Darwin Macintosh.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
ruby:

ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9.8.0], MBARI 0×8770, Ruby Enterprise Edition 2009.10
rails:

rails 2.3.5

Macに本番と同じREEいれてmysqlいれてヒャッハーしようという話。

ダメだったこと

ActiveRecordの:conditionsにプレースホルダを指定しようとすると、consoleが落ちる。

↑文章がスーパーハッカーっぽくてかっこいいねこれ。

script/consoleで、

MyModel.find(:all,:conditions=>["userId in (?)",'big5'])

とやると

dyld: lazy symbol binding failed: Symbol not found: _rb_str_set_len

Referenced from: /Users/big5/.gem/ruby/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle

Expected in: flat namespace

dyld: Symbol not found: _rb_str_set_len

Referenced from: /Users/big5/.gem/ruby/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle

Expected in: flat namespace

Trace/BPT trap

こんなことになる。

MyModel.find(:all,:conditions=>”userId in (’big5′)”)

はOK。
コードが悪いのかといろいろ思考錯誤したけど解決しなかった。

ググったりググったりしたけど解決できる方法がわからなかったよ!!
同僚のrubyに詳しい人に聞いたけどわからなかったよ!!

結局

普通のrubyでやったら普通にうまくいくらしいので、環境作り直すことにしたよ!!!!!