【本を書きました!】iOSプログラミング逆引きリファレンス108
会社の同僚といっしょに本を書きました。
iOSアプリ開発中に遭遇するよくある疑問をレシピ形式でまとめた本です。iOS4の新機能も満載です。iOSアプリ開発のお供にどうぞ!
2005-06-17
■[Ruby][リナザウ]MysqlAdapterに動的パッチ
customer = Customer.find(100); customer.name = "hoge" customer.save
ってなコードを実行したところ、saveのところで「SQLの構文があかんでー」と怒られた(´・ω・`)
調査してみたところ
- RailsのMySQLアダプタは、カラム名をバッククォート(`)でクォートする作りになっている
- mysqlは識別子のクォートにバッククォート(`)を用いる
- ザウルス上で動かしているMySQLはバージョンが旧く、バッククォートによるクォートをサポートしていない orz
というのが原因ですた。とりあえず、
# mysql_adapter_nonquote_patch.rb class ActiveRecord::ConnetionAdapters::MysqlAdapter def quote_column_name(name) # 既存のコード # return "`#{name}`" # クォートしません return "#{name}" end end
ってなファイルを作って requireしてやることで動的にパッチを当ててあげることとする。なんだかアレな対応だけど、とりあえず動いたからいいや。

