Render :update problem with IE 9

Hi,

I have a legacy web site based on ruby on rails 3.0.9 which works just
fine
with Firefox, chrome and IE 8, but I receive an HTTP 406 error every
time
when I check the web site with Internet Explorer 9. I narrowed down the
problem to the respond_to + format.js + render :update trio, but I did
not
manage to solve the problem until now.

I created a small example for reproduction:

The action from the controller:

def change
if params[:kind]
respond_to do |format|
format.js do
render :update do |page|
# originally we have a much more complicated logic here
# …
page.replace_html ‘list_of_numbers’, :partial =>
params[:kind]
# we even have this:
# page << “changePrefix();”
end
end
end
end
end

The view:

<%= link_to(“odd”, url_for(:controller => “main”, :action => “change”,
:kind => “odd”), :remote => true) %>
<%= link_to(“even”, url_for(:controller => “main”, :action => “change”,
:kind => “even”), :remote => true) %>

<%= render :partial => "odd" %>

On the server side I see this:

Started GET “/change?kind=odd” for 10.0.8.9 at Wed Jan 04 11:10:59 +0100
2012 Processing by MainController#change as HTML Parameters:
{“kind”=>“odd”} Completed 406 Not Acceptable in 0ms

And the IE 9 says quite the same.

Any ideas why this doesn’t work with IE9?

Thank you in advance!

Sincerely,
Zsolt


Hi,

It turned out that the 1.7_rc2 version of prototype.js, which is
delivered with rails 3.0.9, had some issues with render :update. After
using the latest stable version of prototype.js (1.7.0) the problem
disappeared.

Cheers,
Zsolt

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs