Ensure :not_found status is returned, catching RecordNotFound doesn't work as isnt raised when finding :first.

This commit is contained in:
Thomas Wood 2009-04-20 20:58:42 +00:00
parent 73a0953627
commit 023e95f1bc
3 changed files with 15 additions and 6 deletions

View file

@ -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

View file

@ -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

View file

@ -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