Consider adding another route to proxy the long request. From your view, use AJAX to load that route and add the result to the DOM when it returns. Until that time, you can display a fancy spinner gif or something like loading...
For example
routes.rb
...
get '/long_calls/show' => 'long_calls#show'
get '/long_calls/show2' => 'long_calls#show2'
...
long_calls_controller.rb
class LongCallsController < ApplicationController
def show
@message = "*Please Wait*"
end
def show2
@message = LongCall.thing_that_takes_a_long_time
end
end
views/long_calls/show.html.erb
<script>
$(function) {
$.get("show2");
}
</script>
<div id='lazyload'>
<%= @message %>
</div>
views/long_calls/show2.js.erb
$("#lazyload").html("<% escape_javascript @message %>");