Forum: Ruby on Rails render :action => bla, :anchor => 'bla'

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
181035f8aac1cb68d50dc58b67dc0349?d=identicon&s=25 Mischa Berger (mischa78)
on 2007-06-06 21:54

I hope someone can help me with this.

I have a pretty long form (which involves scrolling). After posting the
form, some data gets validated and if there are errors the form is
rendered again and the errors are shown.

The problem is: when the form gets rendered the scroll bar is always at
the top, instead of at the part of the form where the error happened. I
tried using redirect_to :anchor => 'bla', but when I use that the values
the user entered are gone.

What I want to do is render :action => bla, :anchor => 'bla', but
obviously this doesn't work. I can't see how to do this. Does anyone
have an idea???


588ab1c0a5610a7e160a3b101abb91e6?d=identicon&s=25 MichaelLatta (Guest)
on 2007-06-06 22:14
(Received via mailing list)
My suggestion would be to use ajax to post the errors into an
initially empty DIV.  The easiest way to do this is to use an RJS
template for the response to the form.  Ajax on Rails has a good
treatment of this.


On Jun 6, 12:54 pm, Mischa Berger <>
181035f8aac1cb68d50dc58b67dc0349?d=identicon&s=25 Mischa Berger (mischa78)
on 2007-06-06 23:33
Thanks for the tip. I found another workaround... It may not look so
nice, but it works:

If an error occurs, call a javascript that scrolls to the anchor:

<% if flash[:cancel_error] %>
<script type="text/javascript">window.onload = scrollToError;</script>
<a name="error"></a><br />
<div id="error"><%= flash[:cancel_error] %></div>
<% end %>

function scrollToError(){ window.location.hash = '#error'; }
This topic is locked and can not be replied to.