ActiveRecordはtypeっていうcolumnがあると発狂する
さっきまで2時間くらい悩んでました。発狂っていうか
NoMethodError: undefined method `empty?' for 0:Fixnum
とか言い出します。いやいや、なんでFixnumにempty?とか聞くの??犯人はtypeっていうcolumnでした。typeは、Single Table Inheritanceに使われるんですね。あー怖い。
ちなみに、今回はtypeがintegerだったからすぐ気づいたけど、これがStringだったら絶対気づかなかったと思う。恐しい。
何がむかつくって、そのちょっと前にユニットテスト書いてて「なんか変だな」っていうのには気づいてるんですよ。
item = collection.items.create(:type => Item::Type::Type1)
とかやったら動かなかったの。
item = collection.items.create item.type = Item::Type::Type1
ならOK。そこでもうちょっとちゃんと考えておけば、その後はまらずにすんだわけで、悔しい。
結局、typeじゃなくてkindにしてwork around。なんか無駄にhigher orderな感じがして、ちょっと嫌ですが、他の単語思い付かなかったんだからしかたない。もしかしたらtype_とかのほうがwork around感が出て良かったかもしれない。