acts_as_paranoid

削除フラグをつけることで擬似削除機能を追加するプラグイン.

  • インストール
% ruby script/plugin source http://techno-weenie.net/svn/projects/plugins
% ruby script/plugin install acts_as_paranoid
  • 変更

modelに加える

class Hoge < ActiveRecord::Base
  acts_as_paranoid
end

そうすると今度はconstruct_count_options_from_argsメソッドが無いといわれる.どうやらActiveRecordのcalculations.rbが2.0へ向けて変更されたのが影響しているらしい.なのでacts_as_paranoid pluginの方を書き換えてみる.

  • vendor/plugins/acts_as_paranoid/lib/caboose/acts/paranoid.rb
def count_with_deleted(*args)
  #calculate_with_deleted(:count, *construct_count_options_from_args(*args))
  calculate_with_deleted(:count, *construct_count_options_from_legacy_args(*args))
end

これで動作するようになった.

##追記 どうやらgemでインストールするとscoped_methods=メソッドが削除されたことが原因で動作しないらしいので,修正.

 
comments powered by Disqus