以下のファイルに例があります。方法は2つ。
vendor/plugins/acts_as_paranoid/lib/caboose/acts/paranoid.rb
# Widget.find_with_deleted(:all)
# # SELECT * FROM widgets
#
# Widget.find(:all, :with_deleted => true)
# # SELECT * FROM widgets
最初にfind_with_deleted()メソッドをやってみた。
以下のエラーが発生。
undefined method `extract_options!' for [:all]:Array
extract_options!()メソッドがないらしい。
ActiveSupportのライブラリとしてあるはずなんだが。。。
gemでActiveSupportを更新しても改善されない。
で、以下のサイトから更新分のソースをダウンロードしてActiveSupportのフォルダにコピーした。
http://dev.rubyonrails.org/changeset/7217
[更新先フォルダ]
.../ruby/gems/1.8/gems/activesupport-1.4.2
core_ext/array/extract_options.rb ってゆうファイルがコピーされたので、うまく動きました。
ここのフォルダを上書きしちゃっていいのかな?
で、次は、:with_deleted => true を確認。
:with_deleted オプションがないってエラーが発生。
以下のサイトに修正内容が載っていました。
http://rubyforge.org/tracker/index.php?func=detail&aid=8896&group_id=944&atid=3711
vendor/plugins/acts_as_paranoid/lib/caboose/acts/paranoid.rb を修正しました。
これで、削除されたレコードを表示できました。
2007/11/27 追記
でもな〜、paginating_findが使えないんだよね。


