I migrated the actionwebservice
gem to rails3. Inside actionwebservice (server-side) there is the option to test your SOAP interface. What this does, under the cover, is first handle the SOAP-request (and render the result), and then wrap those results inside a HTML-view. Very nice. To circumvent the double render exception in rails2 you had to call a function
Unfortunately this function is no longer available in rails3. Luckily the fix is quite easy (but it took me a while to find).
Inside actionwebservice the following function was called inside a controller to allow a second render:
response.instance_variable_set :@header, Rack::Utils::HeaderHash.new(::ActionController::Response::DEFAULT_HEADERS.merge("cookie" => ))
To make this work in rails3, you just have to write:
response.instance_variable_set :@header, Rack::Utils::HeaderHash.new("cookie" => , 'Content-Type' => 'text/html')
So in short: to allow a second render, you have to
- set the controller's instance variable
- reset the content-header
Hope this helps.