From: Thomas Wood Date: Mon, 20 Apr 2009 20:58:42 +0000 (+0000) Subject: Ensure :not_found status is returned, catching RecordNotFound doesn't work as isnt... X-Git-Tag: live~7531 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/023e95f1bc6945dc1d20f3d228b126b12992bc0a?hp=73a0953627705540b4ef2124a0be5926395eabd1 Ensure :not_found status is returned, catching RecordNotFound doesn't work as isnt raised when finding :first. --- diff --git a/app/controllers/old_node_controller.rb b/app/controllers/old_node_controller.rb index 0976a0c9a..2590fd24a 100644 --- a/app/controllers/old_node_controller.rb +++ b/app/controllers/old_node_controller.rb @@ -26,6 +26,11 @@ class OldNodeController < ApplicationController def version begin old_node = OldNode.find(:first, :conditions => {:id => params[:id], :version => params[:version]} ) + if old_node.nil? + # (RecordNotFound is not raised with find :first...) + render :nothing => true, :status => :not_found + return + end response.headers['Last-Modified'] = old_node.timestamp.rfc822 @@ -33,8 +38,6 @@ class OldNodeController < ApplicationController doc.root << old_node.to_xml_node render :text => doc.to_s, :content_type => "text/xml" - rescue ActiveRecord::RecordNotFound - render :nothing => true, :status => :not_found rescue render :nothing => true, :status => :internal_server_error end diff --git a/app/controllers/old_relation_controller.rb b/app/controllers/old_relation_controller.rb index f8751d27c..65de83278 100644 --- a/app/controllers/old_relation_controller.rb +++ b/app/controllers/old_relation_controller.rb @@ -25,6 +25,11 @@ class OldRelationController < ApplicationController def version begin old_relation = OldRelation.find(:first, :conditions => {:id => params[:id], :version => params[:version]} ) + if old_relation.nil? + # (RecordNotFound is not raised with find :first...) + render :nothing => true, :status => :not_found + return + end response.headers['Last-Modified'] = old_relation.timestamp.rfc822 @@ -32,8 +37,6 @@ class OldRelationController < ApplicationController doc.root << old_relation.to_xml_node render :text => doc.to_s, :content_type => "text/xml" - rescue ActiveRecord::RecordNotFound - render :nothing => true, :status => :not_found rescue render :nothing => true, :status => :internal_server_error end diff --git a/app/controllers/old_way_controller.rb b/app/controllers/old_way_controller.rb index a42496687..2f1103216 100644 --- a/app/controllers/old_way_controller.rb +++ b/app/controllers/old_way_controller.rb @@ -26,6 +26,11 @@ class OldWayController < ApplicationController def version begin old_way = OldWay.find(:first, :conditions => {:id => params[:id], :version => params[:version]} ) + if old_way.nil? + # (RecordNotFound is not raised with find :first...) + render :nothing => true, :status => :not_found + return + end response.headers['Last-Modified'] = old_way.timestamp.rfc822 @@ -33,8 +38,6 @@ class OldWayController < ApplicationController doc.root << old_way.to_xml_node render :text => doc.to_s, :content_type => "text/xml" - rescue ActiveRecord::RecordNotFound - render :nothing => true, :status => :not_found rescue render :nothing => true, :status => :internal_server_error end