リア充爆発日記

You don't even know what ria-ju really is.

active_decoratorとoctopusは相性が悪い

master-slaveの振り分けを行いたくてoctopusを導入した。
正直octopusはやりたいことに比べてtoo much感がプンプンしているんだけど、他のgemは導入に手間取ったのでoctopusにした。

そしたら、あるとき

undefined method to_a' for classOctopus::RelationProxy'

というエラーがでるか所がいくつかあることに気づいた。

調べてみると、どうもactive_decoratorが絡んでいるもよう。細部を見ると以下のコードが原因っぽい。
https://github.com/amatsuda/active_decorator/blob/master/lib/active_decorator/decorator.rb#L26

ただ、詳細まで追ってないので確信はないけど、これはどちらかというとoctopusがactiverecordをうまくラップできてないせいなんじゃないかと思う。

とはいえ、octopus以外の選択肢が取りづらい状況ではあったのでdraperに移行した。
draperはdecorateしたいタイミングで明示的にdecorateするので上記のようなことは起きない。ちょっとめんどくさいけど。

というだけのお話。。。