下面的代码工作得很好。
class ApplicationController < ActionController::Base
rescue_from ActiveRecord::RecordNotFound, :with => :bad_record
def bad_record
redirect_to root_url
end
这就是我想到的,而且很有效。
class ApplicationController < ActionController::Base
include RescueFromRecordNotFound
end
\
module RescueFromRecordNotFound
def self.included(base)
tmp = "rescue_from ActiveRecord::RecordNotFound, :with => :bad_record"
base.send(:eval,tmp)
base.send(:include, InstanceMethods)
end
module InstanceMethods
def bad_record
redirect_to root_url
end
结束
这个解决方案有效。但是我真的不太喜欢董伊凡。我想知道是否有更好的方法来实现同样的目标。