mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Added url_for usage on render :location, which allows for record identification [DHH] (still need to figure out why that test doesnt pass, seems like a test issue)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6750 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
*SVN*
|
||||
|
||||
* Added url_for usage on render :location, which allows for record identification [DHH]. Example:
|
||||
|
||||
render :xml => person, :status => :created, :location => person
|
||||
|
||||
...expands the location to person_url(person).
|
||||
|
||||
* Introduce the request.body stream. Lazy-read to parse parameters rather than always setting RAW_POST_DATA. Reduces the memory footprint of large binary PUT requests. [Jeremy Kemper]
|
||||
|
||||
* Add some performance enhancements to ActionView.
|
||||
|
||||
@@ -775,7 +775,7 @@ module ActionController #:nodoc:
|
||||
end
|
||||
|
||||
if location = options[:location]
|
||||
response.headers["Location"] = location
|
||||
response.headers["Location"] = url_for(location)
|
||||
end
|
||||
|
||||
if text = options[:text]
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
require File.dirname(__FILE__) + '/../abstract_unit'
|
||||
|
||||
silence_warnings { Customer = Struct.new("Customer", :name) }
|
||||
silence_warnings { Customer = Struct.new(:name, :id) }
|
||||
|
||||
class CustomersController < ActionController::Base
|
||||
end
|
||||
|
||||
module Fun
|
||||
class GamesController < ActionController::Base
|
||||
@@ -261,6 +264,11 @@ class NewRenderTestController < ActionController::Base
|
||||
def render_with_location
|
||||
render :xml => "<hello/>", :location => "http://example.com", :status => 201
|
||||
end
|
||||
|
||||
def render_with_object_location
|
||||
customer = Customer.new("Some guy", 1)
|
||||
render :xml => "<customer/>", :location => customer_url(customer), :status => :created
|
||||
end
|
||||
|
||||
def render_with_to_xml
|
||||
to_xmlable = Class.new do
|
||||
@@ -766,4 +774,14 @@ EOS
|
||||
get :render_with_to_xml
|
||||
assert_equal "<i-am-xml/>", @response.body
|
||||
end
|
||||
|
||||
def test_rendering_with_object_location_should_set_header_with_url_for
|
||||
ActionController::Routing::Routes.draw do |map|
|
||||
map.resources :customers
|
||||
map.connect ':controller/:action/:id'
|
||||
end
|
||||
|
||||
get :render_with_object_location
|
||||
assert_equal "http://test.host/customers/1", @response.headers["Location"]
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user