Permalink
Browse files

Merge pull request #1942 from dmathieu/url_for

Cherry Pick for 1940
  • Loading branch information...
2 parents 8966382 + 827e8a5 commit 986e193b8c355e14f9b2702d93fba8d64652ff1a @spastorino spastorino committed Jul 3, 2011
View
4 actionpack/lib/action_dispatch/routing/polymorphic_routes.rb
@@ -182,10 +182,12 @@ def build_named_route_call(records, inflection, options = {})
if record.is_a?(Symbol) || record.is_a?(String)
route << record
- else
+ elsif record
route << ActiveModel::Naming.route_key(record)
route = [route.join("_").singularize] if inflection == :singular
route << "index" if ActiveModel::Naming.uncountable?(record) && inflection == :plural
+ else
+ raise ArgumentError, "Nil location provided. Can't build URI."
end
route << routing_type(options)
View
8 actionpack/test/activerecord/polymorphic_routes_test.rb
@@ -87,6 +87,14 @@ def test_namespaced_model_with_nested_resources
end
end
+ def test_with_nil
+ with_test_routes do
+ assert_raise ArgumentError, "Nil location provided. Can't build URI." do
+ polymorphic_url(nil)
+ end
+ end
+ end
+
def test_with_record
with_test_routes do
@project.save
View
7 actionpack/test/controller/mime_responds_test.rb
@@ -659,6 +659,13 @@ def test_using_hash_resource
assert_equal %Q[{"result":{"name":"david","id":13}}], @response.body
end
+ def test_using_hash_resource_with_post
+ @request.accept = "application/json"
+ assert_raise ArgumentError, "Nil location provided. Can't build URI." do
+ post :using_hash_resource
+ end
+ end
+
def test_using_resource_with_block
@request.accept = "*/*"
get :using_resource_with_block

0 comments on commit 986e193

Please sign in to comment.