コントローラ内で例外が起きるとproduction環境では500.htmlまたは404.htmlが返されるはずですが、JSONやXMLリクエストの場合はこれをそれぞれのフォーマットで返すようにしたいです。そこで、
class ApplicationController < ActionController::Base
rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found
private
def record_not_found
respond_to do |format|
format.html { render :status => 404 }
format.xml { render :status => 404 }
format.json { render :status => 404 }
end
end
endとrescue_fromで例外をハンドリングすることを思いつきましたが、これだと例外クラスを指定する必要があり煩雑です。デフォルトでフォーマットに沿ってレスポンスを返すようにするにはどうすればいいでしょうか?
