I understand the motivation for deprecating it in actual application code, but I ask because I've been testing my controller's destroy actions in specs as follows:
describe "POST destroy" do
it "should redirect to show with an alert on failed destroy" do ModelOfThisController.class_eval { def before_destroy; false; end } #rest of code... end
it "should redirect to index with a notice on successful destroy" do ModelOfThisController.class_eval { def before_destroy; true; end } #rest of code... end
end
And i thought it was a pretty clean way to accomplish the goal. If you deprecate Base#before_destroy and then remove it in favor of Base.before_destroy :method, Then what? Won't I have to do the equivalent to every method in the before_destroy callback chain? Seems messier and more brittle.
Or is there a rails way of testing this that I don't know about?