Rails3で論理削除と多対多の関係を作ろうとしたら詰まった
Rails3で、以下のふたつを同時に実装しようとしたらダメだった。
- rails3_act_as_paranoid
テーブルにDATETIME型のdeleted_atを
追加すると論理削除が簡単に作れるもの - モデル間の多対多の関係(habtm; has_and_belongs_to_many)
どうダメかって、こんな風に怒られた。
SystemStackError (stack level too deep):
もちろん前者の rails3_act_as_paranoid を外せばうまくいく。
どうやらrails3_act_at_paranoidを使うと、
has_and_belongs_to_many :hogehoge
のところでエンドレスになっちゃう。
他の論理削除を実装する同様のgemも探してみたけど、
同じエラーを吐いたので諦めた。
素直にModelにdefault_scope書いてとりあえず蓋をした。
こういうのをforkしてひょひょいと直しちゃえる人に今年はなりたい、というかなるー