読者です 読者をやめる 読者になる 読者になる

ActiveAdmin + SwitchPoint + AwesomeNestedSet の組み合わせでデータ登録、更新が失敗する

rails

AwesomeNestedSet と SwitchPoint の相性が悪いっぽい。
SwitchPoint の接続を write に向けると上手く行くっぽいので、
ActiveAdmin でも接続を write に向けたいところ。

以下のように ActiveAdmin の create, update をオーバーライドして、
トランザクション開始後に super を呼べばいい。

controller do

  def create
    User.transaction_with do
      User.with_writable do
        super
      end
    end
  end

  def update
    User.transaction_with do
      User.with_writable do
        super
      end
    end
  end

end