Rails3のfindメソッド使ってあたふたしたこと
いつもしょうもないミスをする俺にメモ。
User.where(:id => 1).find(2)
とするとAR::RecordNotFoundが飛ぶと思ったらid列が1のレコードが返ってきた。
SQL確認するとこうなっていたため。
SELECT "users".* FROM "users" WHERE ("users"."id" = 1 OR "users"."id" = 2) LIMIT 1
まぁ私が悪いのですが。AR::Relationを集合と思ってそのなかからfind〜とか考えながらこういうコード書くと、こういう過ちを犯します。ARelがあまりにも便利すぎて陶酔してしまい、うっかり妙なコードを書いてしまわないよう注意すること。