condition、という名前のカラムでselectできない
Hogeモデルからconditionカラムを取りたくて
Hoge.select(:condition).find_by(id: id)
的なコードを書いたら、なぜかexception出る。おや??
MySQLの予約語だったから、というオチ。そんな名前のカラム名つけちゃダメでしょ。
Hoge.select("`condition`").find_by(id: id)
これでオッケー。エスケープしてやればとりあえず使えます。
こういう命名は避けるに越したことはないのですが、既存で埋まってて、手を出したくない状態になった後で発覚したら、右から左へ受け流すしかないですね。。。
今後のためにも、コードチェックの視点として覚えておくようにしないとです。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.3 予約語
似たような話で、STI使ってないのにtypeカラムを定義するとハマる、という現象もあるそうで。